错误:'struct sigevent'没有名为'sigev_notify_thread_id'的成员

时间:2013-05-30 02:14:12

标签: c++ linux timer signals

以下“玩具”代码表示我在使用POSIX timers的较大代码库中遇到的问题。

#include <time.h>
#include <errno.h>
#include <signal.h>
#include <iostream>

using namespace std;

int main()
{   
    struct sigevent sevp;
    long threadId = 5;

    sevp.sigev_notify = SIGEV_THREAD_ID;
    sevp.sigev_notify_thread_id = threadId;

    return 0;
}

当我尝试在Linux机器上使用g++编译它时,我收到错误:

error: ‘struct sigevent’ has no member named ‘sigev_notify_thread_id’

有原因吗? This让我相信sigevent结构中有一个名为sigev_notify_thread_id的成员。

1 个答案:

答案 0 :(得分:4)

sevp.sigev_notify_thread_id更改为sevp._sigev_un._tid解决了我的问题。您可以在第295行here上看到该定义。

感谢@Duck提供了有用的评论。