UNIX の C プログラム内でシェルの動作をシミュレートする必要がありますが、1 つの重要なことを念頭に置いてください。親プロセスがすべてのコマンドを受け取り、子プロセスに送信するということです。次に、子は受信したコマンドを実行し、出力を親に送信します。アイデアは、親とプライマリの子 fork() からコマンドを受け取って、自分の子がコマンドを実行し、出力を fifo パイプに送信できるようにすることです。問題は、(正しい出力を出力する) while ループを中断できないことです。
mkfifo("output",S_IFIFO|0644);
while(read(fifod2,&c,1))
printf("%c",c);
fifo が可変サイズであることは認識していますが、2 番目の子は終了時に EOF を送信したに違いないため、読み取りが到達すると 0 が返されます。しかし、それは起こらないようです。必要に応じて、コードの一部を追加してください。ありがとうございました