#include<stdio.h>
int main()
{
int common =123;
int pid = fork();
if(pid == 0)
{
printf("this is child,pid=%d ppid=%d\n",getpid(),getppid());
printf("add:%p val:%d\n",&common,common);
}
else if(pid >0)
{
printf("this is father,pid=%d ppid=%d\n",getpid(),getppid());
common = 321;
printf("add:%p val:%d\n",&common,common);
sleep(1);
}
else
{}
return 0;
}
运行结果:
打印出来comm的地址是一样的,但是comm的值是不一样的
本文通过一个C语言示例程序,展示了父进程与子进程在fork()调用后如何共享同一变量的不同实例,并分析了变量地址相同但值不同的现象。
1531

被折叠的 条评论
为什么被折叠?



