[英]Process fork in linux
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
int main(){
pid_t pid;
int num_coconuts = 17;
pid = fork();
if(pid == 0) {
num_coconuts = 42;
exit(0);
} else {
wait(NULL); }
}
printf("I see %d coconuts!\n", num_coconuts);
exit(0);
}
結果是“我看到17個椰子”。 為什么pid == 0時num_coconuts沒有變化?
讓我們觀察一下代碼的作用:
num_coconuts = 17
。 pid == 0)
還是父進程( pid != 0
)。 num_coconuts = 42
但隨后您立即退出。 num_coconuts
如您所見,您的子進程永遠無法達到5.,因為您在步驟4中退出。刪除exit()
,您將獲得兩個椰子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.