如何判断子进程和父进程

区分父进程和子进程

判断子进程和父进程可以使用**fork()**函数:

所需头文件:
#include<sys/types.h>
#include<unistd.h>

返回值:
0:子进程
>0: 父进程,返回值为创造出的子进程的PID
-1:出错

 pid_t pid;     
 pid = fork();//获得fork()的返回值,根据返回值判断父进程/子进程     
 if(pid==-1)//若返回值为-1,表示创建子进程失败     
 {         
 perror("cannot fork");         
 return -1;     
 }     
 else if(pid==0)//若返回值为0,表示该部分代码为子进程     
 {         
 printf("This is child process\n");         
 printf("pid is %d, My PID is %d\n",pid,getpid());     
 }     
 else//若返回值>0,则表示该部分为父进程代码,返回值是子进程的PID     
 {         printf("This is parent process\n");         
           printf("pid is %d, My PID is %d\n",pid,getpid()); //getpid()获得的是自己的进程号     
 }

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
子进程进程的PID是不同的。在进程中调用os.fork()创建子进程时,子进程会继承进程的程序和内存空间,但是它们的PID是不同的。根据引用\[1\]中的示例代码,子进程的PID返回值是0,而进程的PID是子进程的PID加1。所以在系统中,进程的PID比子进程的PID要大1。具体示例中的结果是:进程的PID为5362,子进程的PID为5363。\[1\] #### 引用[.reference_title] - *1* [进程子进程获得的pid返回值以及系统中的对子进程的pid的区别?](https://blog.csdn.net/weixin_42965737/article/details/100074961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [系统编程__2__子进程的创建和回收](https://blog.csdn.net/Just_one_chace/article/details/108416606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Linux系统学习---进程学习篇](https://blog.csdn.net/chinesekobe/article/details/107192614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值