扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

飞凌嵌入式ElfBoard-进程的相关信息之父进程和子进程

03/13 10:31
252
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

进程在创建时,创建进程是新进程的父进程,新进程是创建进程的子进程。在Linux中,每个进程在创建时都有一个父进程。最开始的进程称为初始进程(init process),初始进程是系统启动时创建的第一个进程,负责启动和管理其他进程,在大多数Linux系统中,这个进程的PID为1。

父进程的查看可以通过ps -f的命令,查看到的PPID列就是子进程对应的父进程的PID。或者也可以使用pstree -p命令,以树状结构显示 Linux 系统中的进程关系,将父进程和子进程的层次结构清晰地展示出来。

示例:执行ps -f命令

UID          PID    PPID  C STIME TTY          TIME CMD

ubuntu       373     372  0 15:33 pts/0    00:00:00 -bash

ubuntu      6458     373  0 15:58 pts/0    00:00:00 ps -f

ps -f进程的PID:6458,PPID也就是父进程-bash的PID:373;

应用程序创建的子进程中,可以通过getppid()函数获取到父进程的PID。

1.头文件

#include <unistd.h>

2.函数原型

pid_t getppid(void);

3.参数

无。

4.返回值

返回当前进程的父进程的PID,类型为pid_t。

5.示例:(通过getppid()函数查看父进程ID)

#include <stdio.h>

#include <unistd.h>

int main(void){

pid_t pid;

pid_t ppid;

pid = getpid();

printf("The pid of the process is: %d\n", pid);

ppid = getppid();

printf("The pid of the parent process is: %d\n", ppid);

}

6.运行结果 

The pid of the process is: 6475

The pid of the parent process is: 373

7.代码解析

pid_t pid定义一个变量pid,用于存储当前进程的进程ID。pid_t ppid;定义一个变量ppid,用于存储父进程的进程ID。调用getpid()函数,获取当前进程的PID,并将其存储在变量pid中,随后打印当前进程的PID到标准输出。调用getppid()函数,获取当前进程的父进程ID,并将其存储在变量ppid中,随后打印当前进程的父进程的PID到标准输出。

相关推荐