sig(信号)

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函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值