首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于linux的简单进程有关问题

2012-02-06 
关于linux的简单进程问题#includesys/types.h#includestdio.h#includeunistd.hint value 5int ma

关于linux的简单进程问题
#include<sys/types.h>
#include<stdio.h>
#include<unistd.h>

int value = 5;

int main()
{
pid_t pid;
if(pid==0)
value+=15;
else if(pid>0)
{
wait(NULL);
  printf("value=%d\n",value);
}
return 0;
}
为什么结果是5?对进程概念还不是很理解,觉得这道题很帮助理解,望懂的人能详细解释下,谢谢了!

[解决办法]
父子进程地址空间独立,子进程修改了value,父进程里不受影响
[解决办法]
int value = 5; 

int main() 

pid_t pid; 
if(pid==0) /////////////////////// if((pid=fork())==0)
value+=15; 
else if(pid>0) 

wait(NULL); 
printf("value=%d\n",value); 

return 0; 


先fork,然后再看4楼的其他东西

热点排行