赞
踩
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
//区分父子进程
int main(void)
{
pid_t pid = -1;
//fork函数在子进程中返回0,在父进程中返回子进程的pid
pid = fork();
if(0 == pid )
{
//子进程
printf("pid:%d,ppid:%d\n",getpid(),getppid());
exit(0);
}
else
{
//父进程
printf("父进程pid:%d,子进程pid:%d\n",getpid(),pid);
}
return 0;
}
结果:
- gcc fork.c
- ./a.out
父进程pid:5296,子进程pid:5297
pid:5297,ppid:5296
fork函数的返回值
在子进程中,返回0
在父进程中,返回子进程的pid
由实验结果可得:父进程中getpid是获取自己的pid,而pid是获取子进程的pid
子进程中getpid是获取自己的pid,而getppid是获取父进程的pid
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。