]>
git.ipfire.org Git - thirdparty/util-linux.git/blob - include/all-io.h
1 #ifndef UTIL_LINUX_ALL_IO_H
2 #define UTIL_LINUX_ALL_IO_H
8 static inline int write_all(int fd
, const void *buf
, size_t count
)
14 tmp
= write(fd
, buf
, count
);
18 buf
= (void *) ((char *) buf
+ tmp
);
19 } else if (errno
!= EINTR
&& errno
!= EAGAIN
)
21 if (errno
== EAGAIN
) /* Try later, *sigh* */
27 static inline int fwrite_all(const void *ptr
, size_t size
,
28 size_t nmemb
, FILE *stream
)
34 tmp
= fwrite(ptr
, size
, nmemb
, stream
);
38 ptr
= (void *) ((char *) ptr
+ (tmp
* size
));
39 } else if (errno
!= EINTR
&& errno
!= EAGAIN
)
41 if (errno
== EAGAIN
) /* Try later, *sigh* */
47 static inline ssize_t
read_all(int fd
, char *buf
, size_t count
)
53 memset(buf
, 0, count
);
55 ret
= read(fd
, buf
, count
);
57 if ((errno
== EAGAIN
|| errno
== EINTR
|| ret
== 0) &&
72 #endif /* UTIL_LINUX_ALL_IO_H */