ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Linux-进程相关函数接口-008

2026/9/20 22:00:20 拓冰建站 浏览量
Linux-进程相关函数接口-008

1【fork】

1.1函数原型

1.2函数功能

创建一个子进程,新创建的进程成为原来进程的子进程,原来的进程称为新进程的父进程。父进程调用fork创建子进程,子进程拷贝父进程的文本段、数据段、系统数据段
系统数据段:包括栈区,堆区  

1.3函数参数

1.4返回值

【成功】:父进程返回子进程的PID;子进程返回0 
【失败】:返回-1 getpidpid_t getpid(void);功能:获得调用进程的PID号getppidpid_t getppid(void);功能:获得调用进程的PPID练习:创建一个父进程的2个子进程,子进程中打印自己的PID和父进程的PID,父进程中打印自己的PID和两个子进程的PID

2【exit】

2.1函数原型

【void exit(int status);】

2.2函数功能

让进程结束exit在主函数中使用和return效果一致
exit会刷新缓存区

2.3函数参数

2.3.1【status】

进程结束的状态

2.4返回值

3【_exit】

3.1函数原型

【void _exit(int status);】

3.2函数功能

让进程直接结束

3.3函数参数

3.3.1【status】

进程结束的状态

3.4返回值

4【wait】

4.1函数原型

【pid_t wait(int *wstatus);】

4.2函数功能

回收子进程空间函数的应用:
(1)【wait】函数具有阻塞功能
(2)【wait】函数具有同步功能

如何理解同步:

4.3函数参数

4.3.1【wstatus】

存放子进程结束状态空间的首地址

4.4返回值

成功返回回收到的子进程PID
失败返回-1 

5几个常用的带参宏

5.1

WIFEXITED(wstatus)
进程是否正常退出 

5.2

WEXITSTATUS(wstatus)
进程结束状态值

5.3

WIFSIGNALED(wstatus)
进程是否被信号杀死

5.4

WTERMSIG(wstatus)
获得杀死进程的信号编号练习:创建一个进程的9个子进程,子进程中打印自己的PID和父进程的PID,父进程中打印自己的PID和9个子进程的PID