0 引言
以前看过fork这个函数,知道它就是用来创建一个子进程,具体是怎么个创建法、以及流程等没有详细研究。今天晚上有空随便码了几行,试了试fork,然后故事就开始了。。。
1 问题
代码如下:
int main(void)
{
pid_t pid;
printf("init pid: %d\n", pid);
if((pid = fork()) < 0)
{
printf("fork err \n");
}
else if(pid > 0) // parent
{
printf("parent's parent pid: %d\n", getppid());
printf("parent pid: %d\n", getpid());
printf("parent fun's var-pid: %d\n", pid);
}
else if(0 == pid) // child
{
printf("child's parent pid: %d\n", getppid());
printf("child pid: %d\n", getpid());
printf("child fun's var-pid: %d\n", pid);
}
exit(0);
}
某一次输出结果为:
init pid: 0
parent's parent pid: 9999
parent pid: 3240
parent fun's var-pid: 3268