首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux应用编程之进程的PID与PPID

关注、星标公众号,直达精彩内容

ID:嵌入式情报局

作者:情报小哥

1

进程PID

  首先介绍PID的相关知识,为后面介绍fork函数进行铺垫。

01

PID与PPID

  PID不是控制理论的PID算法,而是Prcess ID的简写。进程PID是当操作系统运行进程时系统自动为其分配的唯一标识符,用于唯一标识此进程的一个整数,而PPID就是进程的父进程的PID。

  既然是唯一标识,PID也就相当于我们的身份证,一旦被发放即终生标识,这也便于操作系统更好的管理和标识进程,当然一旦进程生命周期结束,此时的PID便会被释放,可供以后的进程再次使用。

02

特殊PID进程

  我们可以通过命令行输入 : ps -aux 来查看当前系统所运行的进程。

PID= 0的进程 :

通常也叫调度进程、idle进程,负责进程之间的调度和切换。该进程是内核的一部分,所有进程的根进程,一般我们是看不到该进程的。

PID = 1的进程 :

通常是init进程,Linux几乎所有的进程都是由父进程产生的,PID=1的进程为父原始进程,比如该进程会读取文件系统来完成操作系统的启动。

PID = 2的进程 :

也叫kthreadd进程,它的任务就是管理和调度其他内核线程。

2

两个常用API函数

01

两个常用API

  同样我们使用命令行 : man 2 getpid ,从而可以找到该API的详解。

其中getpid表示获得当前进程PID,而getppid是获得当前进程的父进程PID,并且两个函数均能成功返回。

02

实验说明

实验代码 :

实验结果:

  同样我们可以通过使用命令行ps -aux看到子进程PID = 45347 = ./Test和父进程PID = 45286 = bash。

3

最后

  这里小哥就介绍了PID、PPID以及如何获得进程PID的API函数,今天就分享到这里,下期跟大家一起学学 folk!

—— The End ——

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201209A01S4K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券