2012-10-07 87 views
1

我正在寫一個殼C.我試圖爲每個作業設置一個新的進程組。每條管道的第一道工序成爲工作過程組的領導者,其他工序加入領導者的工藝組。在殼中管道作業控制

所以在這種情況下,cat somefile | wc,cat過程將是過程的領導者。

如何使用setpgid實現此行爲?如果我循環遍歷每個進程,是否需要存儲第一個fork的pid的值,並將其用作循環後續迭代的組ID,以便在子類中設置相應的進程組ID?

回答

0

如果我是你,我會選擇父親收到的fork()pid,並執行setpgid(child_pid,your_gid);. getpgid(0)可用於返回您的組ID。使用這兩條信息來做setpgid()。