码迷,mamicode.com
首页 > 系统相关 > 详细

linux c 使用vfork时产生的疑问

时间:2014-10-25 00:55:57      阅读:322      评论:0      收藏:0      [点我收藏+]

标签: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????














linux c 使用vfork时产生的疑问

标签:io   ar   使用   for   strong   sp   on   问题   bs   

原文地址:http://my.oschina.net/u/1401580/blog/337137

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!