7

以下“玩具”代码代表了我在使用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;
}

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

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

有什么原因吗?使我相信该sigevent结构有一个名为sigev_notify_thread_id.

4

1 回答 1

4

更改sevp.sigev_notify_thread_idsevp._sigev_un._tid解决我的问题。您可以在此处查看第 295 行的定义。

感谢@Duck 的有用评论。

于 2013-05-30T02:40:33.777 回答