Linux之信号的使用及说明
更新时间:2026年04月22日 09:09:09 作者:码完就睡
文章主要介绍了信号的基本概念以及如何通过signal()进行信号处理的修改,接着对SIGINT和SIG_IGN信号进行了说明,最后介绍了kill()函数用于向指定进程发送指定信号
一、信号的基本概念
信号是系统响应某个条件而产生的事件,进程接收到信号会执行相应的操作。(软中断)
与信号有关的系统调用在"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:指定发送信号的类型

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决Linux Centos yum-config-manager --add-repo添
这篇文章主要介绍了解决Linux Centos yum-config-manager --add-repo添加仓库添加错误问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-04-04


最新评论