让我们说在我的程序中我想执行两个子进程,一个执行"ls -al"命令,然后将其传递到"wc"命令并在终端上显示输出.到目前为止,我如何使用管道文件描述符执行此操作我编写的代码:一个示例将非常有用
int main(int argc, char *argv[]) {
int pipefd[2];
int pipefd2[2];
pipe(pipefd2);
if ((fork()) == 0) {
dup2(pipefd2[1],STDOUT_FILENO);
close(pipefd2[0]);
close(pipefd2[1]);
execl("ls", "ls","-al", NULL);
exit(EXIT_FAILURE);
}
if ((fork()) == 0){
dup2(pipefd2[0],STDIN_FILENO);
close(pipefd2[0]);
close(pipefd2[1]);
execl("/usr/bin/wc","wc",NULL);
exit(EXIT_FAILURE);
}
close(pipefd[0]);
close(pipefd[1]);
close(pipefd2[0]);
close(pipefd2[1]);
}
Run Code Online (Sandbox Code Playgroud)