我很難理解fork()在用作條件時是如何工作的。我知道fork()創建一個子進程作爲父進程的確切副本。我的問題是,在以下程序中創建了多少個進程?下面是代碼:在條件中使用fork()時程序中創建了多少個進程?
int global = 0;
int main() {
while(global < 5 && !fork()) {
sleep(1);
global += 1;
}
printf("%d\n", global);
return 0;
}
我是一個假設每個fork()調用,已運行每個進程會創建一個子進程,並只要變量全球達到5值繼續像
當你嘗試時發生了什麼? –
@MartinJames它輸出5作爲全局值。 –