我有一个奇怪的构建问题。无法使用gcc构建sigqueue示例,但g ++可以吗?
我有一个简单的测试程序,将sigqueue发送到另一个进程。
这个小的代码示例生成并运行时,我作为一个c + +程序(用g ++编译) ,但当我编译为ac程序(与gcc)我得到一个错误,他无法找到sigval结构。
简短的例子:
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
int main(int argc, char *argv[])
{
sigval value;
value.sival_int = 123;
sigqueue(0,SIGUSR1, value);
}
请注意,我取代了PID为0,以简化这个问题。
如果我用gcc编译我得到这个:
$> gcc sigusr1_mini.c
sigusr1_mini.c: In function ‘main’:
sigusr1_mini.c:9: error: ‘sigval’ undeclared (first use in this function)
sigusr1_mini.c:9: error: (Each undeclared identifier is reported only once
sigusr1_mini.c:9: error: for each function it appears in.)
sigusr1_mini.c:9: error: expected ‘;’ before ‘value’
sigusr1_mini.c:10: error: ‘value’ undeclared (first use in this function)
缺少什么我在这里,为什么他不能找到的sigval结构? 为什么g ++可以找到它?
感谢 约翰
随意添加评论有关为什么这个问题被downvoted ... – Johan 2010-09-28 14:31:43
我觉得这有帮助。看起来像是值得我高兴的。 – Jake88 2012-09-25 14:15:46