0

#子を作成するCプログラムを作成していて、それらに1つのタスクを実行させ、結果をメインに報告させます。パイプに書き込んだ後、彼らは別の要求を待たなければなりません。

私はパイプを使って一方向に通信していますが、データがどこから来ているのか(または誰から来ているのか)を知る方法がありません。

どの子がパイプに書き込んだかを知る方法がないときに、親の子のPIDを知る方法はありますか?

編集 私は子のすべてのPIDを含む配列を持っていますが、パイプを読み取るときに、データがどこから来たのかを知る方法がありません。

ありがとう!

4

3 に答える 3

4

子ごとに 1 つのパイプを作成し、selectorを使用pollして、一度にすべての子をリッスンします。

于 2012-06-02T15:55:59.157 に答える
3

ザックが言うように(子ごとに1つのパイプ)、または子がメッセージの一部としてpidを報告するようにプロトコルを変更します。

于 2012-06-02T16:25:15.890 に答える
0

fork() は、子の pid を親プロセスに返し、0 を子に返します。それらを配列またはリンク リストに格納して追跡することができます。

于 2012-06-02T15:56:05.343 に答える