summaryrefslogtreecommitdiff
path: root/lib/pipeline.c
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2003-08-03 23:00:23 +0000
committerColin Watson <cjwatson@debian.org>2003-08-03 23:00:23 +0000
commit2561820b818cf133ba114b75942b7b2c76dabb0b (patch)
tree5343fce04cac4ca385da0611d1482061a91afc67 /lib/pipeline.c
parentee8bfcbc2c36344f80149571a1d68e22faec8ecd (diff)
* lib/pipeline.c (pipeline_start): Use dup2() instead of close()
then dup().
Diffstat (limited to 'lib/pipeline.c')
-rw-r--r--lib/pipeline.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/lib/pipeline.c b/lib/pipeline.c
index 628b4157..3d34b7d3 100644
--- a/lib/pipeline.c
+++ b/lib/pipeline.c
@@ -428,11 +428,8 @@ void pipeline_start (pipeline *p)
/* input, reading side */
if (last_input != -1) {
- if (close (0) < 0)
- error (FATAL, errno,
- _("close failed"));
- if (dup (last_input) < 0)
- error (FATAL, errno, _("dup failed"));
+ if (dup2 (last_input, 0) < 0)
+ error (FATAL, errno, _("dup2 failed"));
if (close (last_input) < 0)
error (FATAL, errno,
_("close failed"));
@@ -440,11 +437,8 @@ void pipeline_start (pipeline *p)
/* output, writing side */
if (output_write != -1) {
- if (close (1) < 0)
- error (FATAL, errno,
- _("close failed"));
- if (dup (output_write) < 0)
- error (FATAL, errno, _("dup failed"));
+ if (dup2 (output_write, 1) < 0)
+ error (FATAL, errno, _("dup2 failed"));
if (close (output_write) < 0)
error (FATAL, errno,
_("close failed"));