version 1.12, 2017/07/11 13:14:59 |
version 1.13, 2021/11/21 16:15:43 |
|
|
struct list *p; |
struct list *p; |
int fd; |
int fd; |
ssize_t n, rval, wval; |
ssize_t n, rval, wval; |
char *bp; |
|
int append, ch, exitval; |
int append, ch, exitval; |
char buf[8192]; |
char buf[8192]; |
|
|
|
|
|
|
while ((rval = read(STDIN_FILENO, buf, sizeof(buf))) > 0) { |
while ((rval = read(STDIN_FILENO, buf, sizeof(buf))) > 0) { |
SLIST_FOREACH(p, &head, next) { |
SLIST_FOREACH(p, &head, next) { |
n = rval; |
for (n = 0; n < rval; n += wval) { |
bp = buf; |
wval = write(p->fd, buf + n, rval - n); |
do { |
if (wval == -1) { |
if ((wval = write(p->fd, bp, n)) == -1) { |
|
warn("%s", p->name); |
warn("%s", p->name); |
exitval = 1; |
exitval = 1; |
break; |
break; |
} |
} |
bp += wval; |
} |
} while (n -= wval); |
|
} |
} |
} |
} |
if (rval == -1) { |
if (rval == -1) { |