* Use getopt function
*/
opterr = 0; /* don't want writing to stderr */
- while ( (i = getopt(argc, argv, "h")) != -1) {
+ while ( (i = getopt(argc, argv, "hs:")) != -1) {
switch (i) {
/*
* Handling options
usage();
return -1;
break;
- case 's': /* take wait time for childen */
+ case 's': /* buffer size */
size = strtol(optarg, NULL, 10); /* convert input */
break;
case '?': /* unrecognized options */
/* tee loop */
while (1) {
/* copy stdin to stdout */
- len = tee(STDIN_FILENO, STDOUT_FILENO, size, SPLICE_F_NONBLOCK);
+ len = tee(STDIN_FILENO, STDOUT_FILENO, size, 0);
+ fprintf(stderr, "Copied %d byte\n", len); /* debug (use stderr!) */
if (len == 0) break;
if (len < 0) {
if (errno == EAGAIN) {
exit(EXIT_FAILURE);
}
}
- fprintf(stderr, "Copied %d byte\n", len); /* debug (use stderr!) */
/* write data to the file using splice */
while (len > 0) {
nwrite = splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);