パイプで裏打ちされたサブプロセスをフォークするための最良のテクニックは何ですか?
私の現在のプログラムは、実際にはパイプでリンクされたいくつかのコマンドである別のプロセスを実行する必要があります。コマンドが失敗または成功した場合でもコマンドの出力を知る必要がないため、fork/execを使用しています。
コマンドラインで同等のものは次のようになります
/path/to/A arg1 arg2 | /path/to/B argB1 | /path/to/C
注:スクリプトの使用は、A / B / Cが将来変更される可能性があるため、実用的ではありません。
私が考えている2つのテクニックは次のとおりです。
再帰フォーク。次のフォークで子に使用できる親(その親への入力)出力を接続します。
トップレベルですべてのパイプを作成します。
次に、ループを使用して、パイプを適切に接続できるすべての子をフォークします。