spawn: reshuffle code to get proper stdin for spawned process
This commit is contained in:
parent
29ccb30ff6
commit
fc7e0f4a36
1 changed files with 5 additions and 6 deletions
11
src/spawn.c
11
src/spawn.c
|
@ -335,12 +335,6 @@ spawn_and_give_stdout(const char *prog, char *argv[], int *rd, int redir_stderr)
|
|||
}
|
||||
|
||||
if(p == 0) {
|
||||
close(0);
|
||||
close(2);
|
||||
close(fd[0]);
|
||||
dup2(fd[1], 1);
|
||||
close(fd[1]);
|
||||
|
||||
f = open("/dev/null", O_RDWR);
|
||||
if(f == -1) {
|
||||
spawn_error("pid %d cannot open /dev/null for redirect %s -- %s",
|
||||
|
@ -348,6 +342,11 @@ spawn_and_give_stdout(const char *prog, char *argv[], int *rd, int redir_stderr)
|
|||
exit(1);
|
||||
}
|
||||
|
||||
close(0);
|
||||
close(2);
|
||||
close(fd[0]);
|
||||
dup2(fd[1], 1);
|
||||
close(fd[1]);
|
||||
dup2(f, 0);
|
||||
dup2(redir_stderr ? spawn_pipe_error.wr : f, 2);
|
||||
close(f);
|
||||
|
|
Loading…
Add table
Reference in a new issue