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}