我有一個奇怪的構建問題。無法使用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