#include <signal.h>
#include <stdio.h>
static void sig_handle(int signo)
{
if( SIGSTOP== signo)
{
printf("接收到信号SIGSTOP\n");
}
else if(SIGKILL==signo)
{
printf("接收到信号SIGKILL\n");
}
else
{
printf("接收到信号:%d\n",signo);
}
return;
}
int main(void)
{
sighandler_t ret;
ret = signal(SIGSTOP, sig_handle);
if(SIG_ERR == ret)
{
printf("为SIGSTOP挂接信号处理函数失败\n");
return -1;
}
ret = signal(SIGKILL, sig_handle);
if(SIG_ERR == ret)
{
printf("为SIGKILL挂接信号处理函数失败\n");
return -1;
}
for(;;);
}
编译命令:gcc msignal.c - o test
错误提示:
sighandler_t没有定义
希望给点分析
编译的时候加上宏_GNU_SOURCE就好了:gcc msignal.c - o test -D_GNU_SOURCE
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。