blob: 3907dad90edc74b22eb92f55b0e10ff08235bd20 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <unistd.h>
#include "util.h"
ssize_t loop_write(int fd, const void *b, size_t l) {
ssize_t t = 0;
while (l) {
ssize_t r;
if ((r = write(fd, b, l)) < 0)
return t == 0 ? r : t;
else if (r == 0)
return t;
b += r;
l -= r;
t += r;
}
return t;
}
|