父进程和子进程获得的pid返回值以及系统中的对父子进程的pid的区别?

在学习进程过程中我们都知道,父进程中调用os.fork(),然后由系统创建子进程。子进程继承了父进程的所有程序和内存空间。
父进程的PID返回值是子进程的PID号,而子进程的PID的返回值是0。按照这种说法,子进程在系统中的PID就为0。具体情况请看下面的程序:

import os

pid = os.fork()

if pid < 0:
    print("Create process failed")
elif pid == 0:
    #获取当前进程的PID
    print("子进程的pid:",os.getpid())
    #获取父进程的PID
    print("从子进程中获取父进程的pid:",os.getppid())
else:
    print("在父进程中获取子进程的pid:",pid)
    print("获取父进程的pid:",os.getpid())
结果:
	在父进程中获取子进程的pid: 5363
获取父进程的pid: 5362
子进程的pid: 5363
从子进程中获取父进程的pid: 5362
其中os.getpid是获取当前进程的pid,os.getppid是获取当前进程的父进程的pid.

问题

如果子进程的pid返回值为0,那么子进程在系统中的pid为0。
		但是事实并不是这样,从以上的示例中可以得知,父进程在系统的pid比子进程要大1。
		分别为
			父进程:5362
			子进程:5363
		表示在系统中的pid是原有的pid分别加上各自进程pid的返回值。
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值