开发者社区 问答 正文

使用signal函数无法编译通过,已经包含signal.h头文件

#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没有定义
希望给点分析

展开
收起
a123456678 2016-06-14 14:18:11 4343 分享 版权
1 条回答
写回答
取消 提交回答
  • 编译的时候加上宏_GNU_SOURCE就好了:gcc msignal.c - o test -D_GNU_SOURCE
    screenshot

    2019-07-17 19:37:33
    赞同 展开评论
问答分类:
问答地址: