sig(信号)
1、信号的产生:①一个进程向另一进程发送信号;②内核发送信号;③底层硬件发送信号。
2、kill 进程号-s sig选项,例:kill 3973 -s SIGKILL 使3973进程终止。
注:(1)进程号查询,例:ps –axf | grep demo (其中,demo是正在执行的可执行文件)。
(2)在while(1)死循环中,ctrl + C 等价于sig选项的SIGINT(终止进程)。
1、kill(信号发送)
1、头文件:#include <sys/types.h>#include <signal.h>
2、函数原型:int kill(pid_t pid, int sig);
3、函数形参:pid_t pid:将要被发送信号的进程的进程号;
sig:信号选项。
注:若将pid_t pid置为-1,则向当前所有进程发送指定的sig信号。
4、函数返回值:成功返回0,失败返回-1,errno被设置。
2、signal(设置信号处理方式)
1、头文件: #include <signal.h>
2、函数原型:sighandler_t signal(int signum, sighandler_t handler);
3、函数形参:signum:信号编号(选项);
handler:信号处理方式(具体三种方式见下)。
注:信号处理方式:(1)忽略:SIG_IGN;(2)默认:SIG_DFL;
(3)捕获:填写类型为void (*)(int型形参)的捕获函数的地址。
4、函数返回值:成功返回上一次的处理方式,失败返回SIG_ERR宏值,errno被设置。
5、使用示例:将ctrl + C信号(原为SIGINT–终止进程)变为调用print函数。
sig(信号)
最新推荐文章于 2022-08-22 18:04:02 发布