[英]Fork() command how many processes
這是一個簡單的,但我不確定解決方案
int main() {
c = fork();
fork();
fork();
}
我想8 ...也是c = 0的值? 如果是這樣,為什么?
答案是:fork生成7個進程。
首先,您有主要流程。 它自我分叉,創造了一個新的過程。 我們稱之為child1 。
現在, 主 child1兩岔自己,創造的child2和child3。
現在, 主 ,child1,和的child2叉child3再次..創建child4,child5,child6和child7。
c等於0,僅在第一個fork成功時才在child1進程中。
(來自man fork):
RETURN VALUE
On success, the PID of the child process is returned in the parent, and 0 is returned in the child.
請記住,每個進程都有自己的PID,這與任何其他現有進程的PID不同。 在每個fork之后,父級知道生成的子級的PID。
你想在哪個過程中知道這個價值? 子進程將具有c = 0,並且父進程將在c中具有其子的pid值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.