Aggiornamenti vari.
[gapil.git] / listati / tee.c
index 51df9f665667c9e6e2dbaae7a2cc5aed20fa21b4..d0a31f2fb0b99c028d6e76f57dd4292ef0ae5642 100644 (file)
@@ -7,36 +7,10 @@ int main(int argc, char *argv[])
     int fd, len, nwrite;
     struct stat fdata;
     ...
-    /* check argument, open destination file and check stdin and stdout */
-    if ((argc - optind) != 1) { /* There must be one argument */
-        printf("Wrong number of arguments %d\n", argc - optind);
-        usage();
-    }
-    fd = open(argv[1], O_WRONLY|O_CREAT|O_TRUNC, 0644);
-    if (fd == -1) {
-        printf("opening file %s falied: %s", argv[1], strerror(errno));
-        exit(EXIT_FAILURE);
-    }
-    if (fstat(STDIN_FILENO, &fdata) < 0) {
-       perror("cannot stat stdin");
-       exit(EXIT_FAILURE);
-    }
-    if (!S_ISFIFO(fdata.st_mode)) {
-       fprintf(stderr, "stdin must be a pipe\n");
-       exit(EXIT_FAILURE);
-    }
-    if (fstat(STDOUT_FILENO, &fdata) < 0) {
-       perror("cannot stat stdout");
-       exit(EXIT_FAILURE);
-    }
-    if (!S_ISFIFO(fdata.st_mode)) {
-       fprintf(stderr, "stdout must be a pipe\n");
-       exit(EXIT_FAILURE);
-    }
     /* 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);
        if (len == 0) break;
         if (len < 0) {
             if (errno == EAGAIN) {