我的目标是获取第一个命令的输出并将其用作第二个命令的输入,但问题是它只是通过我的父条件,(pid> 0),而不是孩子。我试过在父母中重复,但它没有用。任何帮助将不胜感激!万一你想知道,我在C:
这样做int pipe_a1[2];
int pipe_a2[2];
command1 = {'ls','-a'}
command2 = {'cat','newFile'}
if (pipe(pipe_a1) < 0 || pipe(pipe_a2) < 0) {
cout << "pipe failed." << endl;
exit(1);
}
pid = fork()
if (pid == 0) {
close(pipe_a1[1]);
close(pipe_a2[0]);
dup2(pipe_a1[0], STDIN_FILENO);
dup2(pipe_a2[1], STDOUT_FILENO);
execvp(command2[0],command2)
} else if(pid > 0) {
close(pipe_a1[0]);
close(pipe_a2[1]);
execvp(command1[0],command1)
} else {
printf("Fork Failed");
}