ReactOS  0.4.13-dev-1158-g658d5a3
ffileread.c
Go to the documentation of this file.
1 /* @(#)ffileread.c 1.13 09/06/30 Copyright 1986, 1996-2009 J. Schilling */
2 /*
3  * Copyright (c) 1986, 1996-2009 J. Schilling
4  */
5 /*
6  * The contents of this file are subject to the terms of the
7  * Common Development and Distribution License, Version 1.0 only
8  * (the "License"). You may not use this file except in compliance
9  * with the License.
10  *
11  * See the file CDDL.Schily.txt in this distribution for details.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file CDDL.Schily.txt from this distribution.
15  */
16 
17 #include "schilyio.h"
18 
21  register FILE *f;
22  void *buf;
23  size_t len;
24 {
25  register int fd;
26  register ssize_t ret;
27  int oerrno = geterrno();
28 
29  down2(f, _IOREAD, _IORW);
30  fd = fileno(f);
31 
32  while ((ret = read(fd, buf, len)) < 0 && geterrno() == EINTR) {
33  /*
34  * Set back old 'errno' so we don't change the errno visible
35  * to the outside if we did not fail.
36  */
37  seterrno(oerrno);
38  }
39  return (ret);
40 }
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define EINTR
Definition: acclib.h:80
static int fd
Definition: io.c:51
#define _IOREAD
Definition: stdio.h:125
GLfloat f
Definition: glext.h:7540
EXPORT int seterrno(int err)
Definition: seterrno.c:34
_Check_return_ _CRTIMP int __cdecl fileno(_In_ FILE *_File)
EXPORT int geterrno()
Definition: geterrno.c:34
EXPORT ssize_t ffileread(FILE *f, void *buf, size_t len)
Definition: ffileread.c:20
int ret
GLenum GLsizei len
Definition: glext.h:6722
int ssize_t
Definition: rosdhcp.h:48
#define down2(f, fl1, fl2)
Definition: schilyio.h:218
#define f
Definition: ke_i.h:83
#define _IORW
Definition: stdio.h:136
_CRTIMP int __cdecl read(_In_ int _FileHandle, _Out_writes_bytes_(_MaxCharCount) void *_DstBuf, _In_ unsigned int _MaxCharCount)