次のスニペットでは、ls
コマンドの出力を入力にリダイレクトしていますが、これは完全に機能します。次のコードを使用して、コマンドの出力を「beejoutput.txt」という名前のファイルwc -l
にリダイレクトしたいのですが、機能しません。ls
助けが必要。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
int pfds[2];
pipe(pfds);
if (!fork())
{
dup2(pfds[1],1);
close(pfds[0]);
execlp("ls", "ls",NULL);
}
else
{
FILE *outputO=fopen ("beejoutput.txt", "w"); //opening file for writing
dup2(pfds[0],0);
dup2(fileno(outputO),pfds[0]);
close(pfds[1]);
execlp("wc", "wc","-l", NULL);
}
return 0;
}