(main): Ignore SIGPIPE.
authorJim Meyering <jim@meyering.net>
Tue, 29 Oct 1996 04:16:59 +0000 (04:16 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 29 Oct 1996 04:16:59 +0000 (04:16 +0000)
src/tee.c

index 458c50ba489052ae08a9c5455b9078fc9e8999bf..fe104a8e94572d4eafdd863c6b9c253ef9a1a7fa 100644 (file)
--- a/src/tee.c
+++ b/src/tee.c
@@ -135,6 +135,21 @@ main (int argc, char **argv)
 #endif                         /* _POSIX_SOURCE */
     }
 
+  /* Don't let us be killed if one of the output files is a pipe that
+     doesn't consume all its input.  */
+#ifdef _POSIX_SOURCE
+  {
+    struct sigaction sigact;
+
+    sigact.sa_handler = SIG_IGN;
+    sigemptyset (&sigact.sa_mask);
+    sigact.sa_flags = 0;
+    sigaction (SIGPIPE, &sigact, NULL);
+  }
+#else
+  signal (SIGPIPE, SIG_IGN);
+#endif
+
   errs = tee (argc - optind, (const char **) &argv[optind]);
   if (close (0) != 0)
     error (1, errno, _("standard input"));