进程终止与等待机制详解
1. 进程终止方式
进程的终止可以通过多种方式实现:
- 信号终止 :当进程接收到默认操作为终止进程的信号时,进程会终止。例如 SIGTERM 和 SIGKILL 信号。
- 内核干预 :内核可能会因为进程执行非法指令、导致段错误、内存耗尽等原因杀死进程。
2. 注册终止函数
在进程终止时,我们可以注册一些函数来执行特定的操作。以下是两种常见的注册方式:
2.1 atexit() 函数
atexit() 是 POSIX 1003.1 - 2001 定义的库函数,用于注册在进程正常终止时调用的函数。其原型如下:
#include <stdlib.h>
int atexit (void (*function)(void));
- 成功调用
atexit()会注册给定的函数,该函数将在进程通过exit()或从main()返回时执行。 - 如果进程调用了
exec函数,注册的函数列表将被清除。 - 如果进程通过信号终止,注册的函数不会被调用。
注册的函数必须没有参数且不
超级会员免费看
订阅专栏 解锁全文
1196

被折叠的 条评论
为什么被折叠?



