标签:io ar 使用 for strong sp on 问题 bs
#include<stdio.h> #include<sys/types.h> #include<unistd.h> int globvar=5; int main(){ pid_t pid; int var=1, i; printf("fork is diff with vfork\n"); // pid=fork(); pid=vfork(); switch(pid){ case 0: i=3; while(i-->0){ printf("child process is running\n"); globvar++; var++; sleep(1); } printf("child‘s globvar=%d,var=%d\n",globvar,var); break; default: i=5; while(i-->0){ printf("parent process is running\n"); globvar++; var++; sleep(1); } printf("parent‘s globvar=%d,var=%d\n",globvar,var); exit(0); case -1: printf("process creation failed\n"); exit(0); } return 0; }
运行结果为:
fork is diff with vfork
child process is running
child process is running
child process is running
child‘s globvar=8,var=4
parent process is running
parent process is running
parent process is running
parent process is running
parent process is running
parent‘s globvar=13,var=-1216646167
问题来了,为什么var值不是9????
标签:io ar 使用 for strong sp on 问题 bs
原文地址:http://my.oschina.net/u/1401580/blog/337137