#include <unistd.h> #include <stdio.h> int main(void) {int i=0;for(i=0;i<3;i++){pid_t fpid=fork();if(fpid==0)printf("son/n");elseprintf("father/n");}return 0;} 這運(yùn)行結(jié)果是怎么樣的,為什么會有不同的答案,能畫下他的樹形圖讓我更好理解下嘛
如果出現(xiàn)錯誤,fork返回一個負(fù)值;
在父進(jìn)程中,fork返回新創(chuàng)建子進(jìn)程的進(jìn)程ID;
在子進(jìn)程中,fork返回0
有不同的答案取決于OS調(diào)度器讓那個進(jìn)程先跑。
也就是說,執(zhí)行pid_t fpid=fork();成功會有兩個進(jìn)程:父跟子進(jìn)程。
fork能夠返回兩次,它可能有三種不同的返回值:
吾愛知道 2024 © 吾愛知道鄂ICP備2022002577號-1
站內(nèi)文章地圖 站內(nèi)問答地圖 站內(nèi)作者地圖 站點(diǎn)標(biāo)簽地圖 站點(diǎn)地圖 站點(diǎn)標(biāo)簽 站點(diǎn)題庫