Initial code release
[external/syslinux.git] / com32 / lib / fwrite.c
1 /*
2  * fwrite.c
3  */
4
5 #include <errno.h>
6 #include <unistd.h>
7 #include <stdio.h>
8
9 size_t _fwrite(const void *buf, size_t count, FILE * f)
10 {
11     size_t bytes = 0;
12     ssize_t rv;
13     const char *p = buf;
14
15     while (count) {
16         rv = write(fileno(f), p, count);
17         if (rv == -1) {
18             if (errno == EINTR || errno == EAGAIN)
19                 continue;
20             else
21                 break;
22         } else if (rv == 0) {
23             break;
24         }
25
26         p += rv;
27         bytes += rv;
28         count -= rv;
29     }
30
31     return bytes;
32 }