Risistemato tutto il primo esempio di server echo e le funzioni FullWrite e
[gapil.git] / listati / FullWrite.c
1 #include <unistd.h>
2
3 ssize_t FullWrite(int fd, const void *buf, size_t count) 
4 {
5     size_t nleft;
6     ssize_t nwritten;
7
8     nleft = count;
9     while (nleft > 0) {             /* repeat until no left */
10         if ( (nwritten = write(fd, buf, nleft)) < 0) {
11             if (errno == EINTR) {   /* if interrupted by system call */
12                 continue;           /* repeat the loop */
13             } else {
14                 return(nwritten);   /* otherwise exit with error */
15             }
16         }
17         nleft -= nwritten;          /* set left to write */
18         buf +=nwritten;             /* set pointer */
19     }
20     return (nleft);
21 }