开发者社区> 问答> 正文

使用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 3965 0
1 条回答
写回答
取消 提交回答
  • 编译的时候加上宏_GNU_SOURCE就好了:gcc msignal.c - o test -D_GNU_SOURCE
    screenshot

    2019-07-17 19:37:33
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载