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 }