prog_argv = prepare_spawn (prog_argv);
if (pipe_stdout)
- if (_pipe (ifd, 4096, O_BINARY | O_NOINHERIT) < 0
+ if (pipe2 (ifd, O_BINARY | O_NOINHERIT) < 0
|| (ifd[0] = fd_safer_noinherit (ifd[0])) < 0
|| (ifd[1] = fd_safer_noinherit (ifd[1])) < 0)
error (EXIT_FAILURE, errno, _("cannot create pipe"));
if (pipe_stdin)
- if (_pipe (ofd, 4096, O_BINARY | O_NOINHERIT) < 0
+ if (pipe2 (ofd, O_BINARY | O_NOINHERIT) < 0
|| (ofd[0] = fd_safer_noinherit (ofd[0])) < 0
|| (ofd[1] = fd_safer_noinherit (ofd[1])) < 0)
error (EXIT_FAILURE, errno, _("cannot create pipe"));
&& close (stdoutfd) >= 0)))))
/* The child process doesn't inherit ifd[0], ifd[1], ofd[0], ofd[1],
but it inherits all open()ed or dup2()ed file handles (which is what
- we want in the case of STD*_FILENO) and also orig_stdin,
- orig_stdout, orig_stderr (which is not explicitly wanted but
- harmless). */
+ we want in the case of STD*_FILENO). */
/* Use spawnvpe and pass the environment explicitly. This is needed if
the program has modified the environment using putenv() or [un]setenv().
On Windows, programs have two environments, one in the "environment