timeoutwrite.c
changeset 0 068428edee47
equal deleted inserted replaced
-1:000000000000 0:068428edee47
       
     1 #include "timeoutwrite.h"
       
     2 #include "select.h"
       
     3 #include "error.h"
       
     4 #include "readwrite.h"
       
     5 
       
     6 int timeoutwrite(t,fd,buf,len) int t; int fd; char *buf; int len;
       
     7 {
       
     8   fd_set wfds;
       
     9   struct timeval tv;
       
    10 
       
    11   tv.tv_sec = t;
       
    12   tv.tv_usec = 0;
       
    13 
       
    14   FD_ZERO(&wfds);
       
    15   FD_SET(fd,&wfds);
       
    16 
       
    17   if (select(fd + 1,(fd_set *) 0,&wfds,(fd_set *) 0,&tv) == -1) return -1;
       
    18   if (FD_ISSET(fd,&wfds)) return write(fd,buf,len);
       
    19 
       
    20   errno = error_timeout;
       
    21   return -1;
       
    22 }