master xplshn/aruu / shared / libutil / concat.c
 1/* See LICENSE file for copyright and license details. */
 2#include <unistd.h>
 3
 4#include "../util.h"
 5
 6int
 7concat(int f1, const char *s1, int f2, const char *s2)
 8{
 9	char buf[BUFSIZ];
10	ssize_t n;
11
12	while ((n = read(f1, buf, sizeof(buf))) > 0) {
13		if (writeall(f2, buf, n) < 0) {
14			weprintf("write %s:", s2);
15			return -2;
16		}
17	}
18	if (n < 0) {
19		weprintf("read %s:", s1);
20		return -1;
21	}
22	return 0;
23}