磨砺技术珠矶,践行数据之道,追求卓越价值
回到上一级页面: PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页
[作者 高健@博客园 luckyjackgao@gmail.com]
用这个从网上找的例子,看父子进程对全局变量的拥有是否不同:
复制代码
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
int glob = 6;
char buf[] = "a write to stdout\n";
int main()
{
int var;
pid_t pid;
var = 88;
fprintf(stderr, "%s", buf);
printf("before fork/n");
if(( pid = fork() ) < 0 )
{
fprintf(stderr, "fork error/n");
}
else if(pid == 0)
{
glob++;
var++;
printf("child process/n");
printf("pid = %d, father pid = %d, glob = %d, var = %d/n",
getpid(), getppid(), glob, var);
exit(0);
}
else
{
sleep(2);
printf("father process/n");
printf("pid = %d, father pid = %d, glob = %d, var = %d/n",
getpid(), getppid(), glob, var);
}
return 0;
}
复制代码
运行结果如下:
a write to stdout
before fork
child process pid=13712, father pid=13711, glob=13662, var=7
father process pid=13711, father pid=13539, glob=6, var=6
这表明,父子进程各有各的全局变量。
本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/07/27/2612230.html,如需转载请自行联系原作者