2 * Splice argument file to stdout
10 #include <sys/ioctl.h>
15 #define BLKGETSIZE64 _IOR(0x12,114,size_t)
18 static int usage(char *name)
20 fprintf(stderr, "%s: infile | ...\n", name);
24 static long long in_size(int fd)
26 unsigned long long bytes;
29 if (fstat(fd, &sb) < 0)
30 return error("fstat");
35 if (ioctl(fd, BLKGETSIZE64, &bytes) < 0)
36 return error("BLKGETSIZE64");
41 int main(int argc, char *argv[])
47 return usage(argv[0]);
49 if (check_output_pipe())
50 return usage(argv[0]);
52 fd = open(argv[1], O_RDONLY);
54 return error("open input");
61 int ret = ssplice(fd, NULL, STDOUT_FILENO, NULL, isize, 0);
64 return error("splice");