skalibs

Mirror/fork of https://skarnet.org/software/skalibs/
git clone https://ccx.te2000.cz/git/skalibs
Log | Files | Refs | README | LICENSE

allreadwrite.c (302B)


      1 /* ISC license. */
      2 
      3 #include <skalibs/allreadwrite.h>
      4 
      5 size_t allreadwrite (io_func_ref op, int fd, char *buf, size_t len)
      6 {
      7   size_t written = 0 ;
      8   while (len)
      9   {
     10     ssize_t w = (*op)(fd, buf, len) ;
     11     if (w <= 0) break ;
     12     written += w ;
     13     buf += w ;
     14     len -= w ;
     15   }
     16   return written ;
     17 }