首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结构sigaction不完整错误

结构sigaction不完整错误
EN

Stack Overflow用户
提问于 2011-06-27 17:39:26
回答 2查看 11.5K关注 0票数 16

尽管包含<signal.h>,但我得到了一个错误,指出struct sigaction是一个不完整的类型。

我不知道该怎么处理它。

请帮帮忙

代码语言:javascript
复制
#include <signal.h>
struct sigaction act;

int main(int argc, char** argv)
{
    int depth;

    /* validate arguments number*/
    if(argc < 2)
    {
        printf("fatal error: please use arguments <MaxChild> <MaxDepth>\n");
        exit(1);
    }

    /* register the realtime signal handler for sigchld*/

/*173*/
    memset(&act,0,sizeof(act));
    act.sa_handler = sigproc;
    sigaction(SIGCHLD,  /* signal number whose action will be changed */
             &act,      /* new action to do when SIGCHLD arrives*/
             NULL);     /* old action - not stored */


    srand(time(NULL));
    depth = rand() % atoi(argv[2]); /* [0 maxDepth]*/

    RecursiveFunc(atoi(argv[1]), depth);

    return 0;
}

错误消息:

代码语言:javascript
复制
proc.c: In function ‘main’:
proc.c:173:22: error: invalid application of ‘sizeof’ to incomplete type ‘struct sigaction’ 
proc.c:174:2: error: invalid use of undefined type ‘struct sigaction’
cc1: warnings being treated as errors
proc.c:175:2: error: implicit declaration of function ‘sigaction’
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-27 17:43:10

只是

代码语言:javascript
复制
#define _XOPEN_SOURCE 700

在代码中的任何其他行之前,或使用-D选项进行编译以定义预处理器符号

代码语言:javascript
复制
gcc ... -D_XOPEN_SOURCE=700 ...
票数 16
EN

Stack Overflow用户

发布于 2017-03-03 17:56:55

我通过改变我和gcc一起使用的C标准解决了这个问题。

我改变了:gcc -std=c99 ...

关于这个:gcc -std=gnu99 ...

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6491019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档