libowfat/buffer/buffer_stubborn.c

16 lines
305 B
C
Raw Normal View History

2001-02-04 01:28:45 +00:00
#include <errno.h>
#include "buffer.h"
int buffer_stubborn(ssize_t (*op)(),int fd,const char* buf, size_t len,void* cookie) {
2014-03-14 19:42:54 +00:00
ssize_t w;
2001-02-04 01:28:45 +00:00
while (len) {
if ((w=op(fd,buf,len,cookie))<0) {
2001-02-04 01:28:45 +00:00
if (errno == EINTR) continue;
return -1;
};
buf+=w;
2014-03-14 19:42:54 +00:00
len-=(size_t)w;
2001-02-04 01:28:45 +00:00
}
return 0;
}