centos 查看进程父进程_「粉丝问答6」子进程进程的父进程关系

往期问答汇总:

  1. 粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数
  2. 一个端口号可以同时被两个进程绑定吗?
  3. 两个线程,两个互斥锁,怎么形成一个死循环?
  4. 一个例子让你看清线程调度的随机性
  5. 5. 从0开始学ARM-MRS、MSR、寻址操作、原子操作原理

一、粉丝提问

fork出的进程的父进程是从哪来的?

粉丝提问,一口君必须满足

1cbf9273fca2e147fe65398912a484fb.png

二、解答

这个问题看上去很简单,但是要想把进程的父进程相关的所有知识点搞清楚,还是有点难度的,下面我们稍微拓展下,分几点来讲解这个知识点。

1. 如何查看进程ID

每个linux进程都一定有一个唯一的数字标识符,称为进程ID(process ID),进程ID总是一非负整数,它的父进程叫PPID。

查看进程ID命令:

ps -ef
eda5963543f0b0ed29fa1d7fd5b5c6a5.png

也可以使用函数来获得进程ID:

#include #include pid_t getpid(void);   返回:调用进程的进程IDpid_t getppid(void);   返回:调用进程的父进程ID

2. 第一个进程init

Linux内核启动之后,会创建第一个用户级进程init,由上图可知, init 进程 (pid=1) 是除了 idle 进程 (pid=0,也就是 init_task) 之外另一个比较特殊的进程,它是 Linux 内核开始建立起进程概念时第一个通过 kernel_thread 产生的进程,其开始在内核态执行,然后通过一个系统调用,开始执行用户空间的 / sbin/init 程序。

3. fork函数

创建一个进程很简单,先来认识一下fork函数:

#include #include pid_t fork(void);返回:子进程中为0,父进程中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值