Linux 应用程序信号基础知识总结

       以前看的底层的东西居多,不过底层原厂做的相对完善了,导致底层的工程师总是在做一些硬件+驱动/软件测试的移植工作,很多Linux 精妙的东西没学到,觉得不是Linux内核简单,而是目前的生态链来说,驱动工程师只有原厂有较大锻炼罢了,现在有时间就看看应用的东西吧,写点基础的总结。

1.发送信号命令

    kill -信号  要发送的进程id(pid)       例如kill -SIGUSR1 1234

     kill -l 查看当前系统支持的信号

2. 能够产生信号的函数

int kill(pid_t pid,int sig);
int raise(int signum);
kill函数将信号发送给进程,raise函数允许进程向自身发送信号 raise(signum)相当于kill(getpid(),signum);

alarm函数设置了一个定时器,当定时器到了给当前进程发送SIGALRM信号。 unsigned int alarm(unsigned int seconds); seconds是计时器时间到后时钟的秒数。 如果没有设置其他超时,函数返回0,否则返回值为前面安排超时中保留的秒数。 一个进程只能设置一次超时 把seconds设置为0可以取消前面的超时设置。

abort函数 void abort(void); 该函数发送SIGABRT信号给调用进程,进程不应该忽略这个信号。 即使进程捕捉到SIGABRT这个信号,进程还是会异常退出 让进程捕捉SIGABRT的意图是在进程终止前由其执行所需的清理操作。

      注意sleep 以及pause 函数收到信号都会立即返回。

 更详细的信号知识请看这篇文章 https://blog.csdn.net/flowing_wind/article/details/79967588

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值