1

を使用して、execlp()子プロセスでコマンドを実行し、パイプに保存して、親によって読み取られるようにします。

int pipefd[2];
if (pipe(pipefd)) {
    perror("pipe");
    exit(127);
}
if(!fork()){
    close(pipefd[0]);
    dup2(pipefd[1], 1);
    close(pipefd[1]);
    execlp("ls", "ls", NULL);
} else {
    close(pipefd[1]);
    dup2(pipefd[0], 0);
    close(pipefd[0]);
    execlp("wc", "wc", NULL);
}

場合によっては、親は何も実行する必要はなく、パイプの内容を画面に出力するだけで、パイプを画面に出力するにはどうすればよいですか (出力サイズが不明なため、変数に格納しない可能性があります)。

4

1 に答える 1