一、信号的基本概念
信号是系统响应某个条件而产生的事件,进程接收到信号会执行相应的操作。(软中断)
与信号有关的系统调用在"signal.h"头文件中有声明。
常见信号值,及对应的功能说明:

信号的值在系统源码中的定义如下:



二、修改信号的相应方式 signal()
1.signal()
- signal():替换信号功能
typedef void (*sighandle_t)(int); sighandle_t (*signal)(int sig, sighandle_t sig_fun);
- sig:修改的信号值
- sig_fun:修改后的行为
2.常用信号sigint
- sigint:该信号由 ctrl+c 产生,功能是终端中断。

2.sig_ign
- sig_ign:忽略该信号

3.sig_dfl
- sig_dfl:恢复默认行为

三、发送信号 kill()
- kill():可以向指定的进程发送指定的信号。
int kill(pid_t pid, int sig);
- pid > 0:指定将信号发送给那个进程
- pid == 0:指定被发送到和当前进程在同一个进程组的进程
- pid == -1:将信号发送给系统上有权限发送的所有的进程
- pid < -1:将信号发送给进程组id等于pid绝对值,并且有权限发送的所有的进程
- sig:指定发送信号的类型

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论