信号是一种中断,为 Linux 提供一种处理异步事件的方法。
信号的定义
- 9:
SIGKILL - 2:
SIGINT - 15:
SIGTERM
信号的使用
signal.h中,调用signal函数传入一个sighandler_t类型的handler,注册信号处理函数- 用
kill函数对一个 pid 发送一个信号。已注册信号,kill发送的信号都能收到 exec函数会将原先要捕捉的信号设置为默认动作fork函数的子进程会继承父进程的信号处理方式 Linux Clone VS Fork
原型:
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig);未了解
- 高级信号发送接收: sigaction , sigqueue
一文看懂 Linux 信号处理原理与实现
一文看懂 Linux 信号处理原理与实现-linux 信号处理流程
信号处理时内核态
信号处理程序代码运行在用户态 A 进程向 B 进程发送信号,发起系统调用陷入内核态,内核触发信号处理函数,返回用户态执行信号处理程序,信号处理程序执行完毕后返回到内核态执行收尾工作,再返回用户态继续执行程序
未了解
- sigaction 详细解释
- signal 在内核态的处理过程
- [ ]