14 #define BS SPLICE_SIZE
16 int main(int argc, char *argv[])
18 int in_fd, out_fd, pfds[2];
22 printf("%s: infile outfile\n", argv[0]);
26 in_fd = open(argv[1], O_RDONLY);
32 if (fstat(in_fd, &sb) < 0) {
37 out_fd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, 0644);
49 int this_len = min(BS, sb.st_size);
50 int ret = splice(in_fd, NULL, pfds[1], NULL, this_len, SPLICE_F_NONBLOCK);
53 return error("splice-in");
57 int written = splice(pfds[0], NULL, out_fd, NULL, ret, 0);
59 return error("splice-out");