簡體   English   中英

Fork()命令有多少進程

[英]Fork() command how many processes

這是一個簡單的,但我不確定解決方案

int main() {
    c = fork();
    fork();
    fork();
}

我想8 ...也是c = 0的值? 如果是這樣,為什么?

答案是:fork生成7個進程。

首先,您有主要流程。 它自我分叉,創造了一個新的過程。 我們稱之為child1

現在, child1兩岔自己,創造的child2child3。

現在, ,child1,的child2child3再次..創建child4,child5,child6child7。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM