无法解析字段tv_sec

时间:2013-06-20 11:44:30

标签: c++ g++ time.h

我正在尝试运行从this simple example of a timer获取的以下代码段:

#include <sys/time.h>
#include <stdio.h>

int SetTimer(struct timeval &tv, time_t sec) {
    gettimeofday(&tv, NULL);
    tv.tv_sec += sec;

    return 1;
}

int CheckTimer(struct timeval &tv, time_t sec) {
    struct timeval ctv;
    gettimeofday(&ctv, NULL);

    if ((ctv.tv_sec > tv.tv_sec)) {
        gettimeofday(&tv, NULL);
        tv.tv_sec += sec;
        return 1;
    } else {
        return 0;
    }
}

int main() {
    struct timeval tv;
    SetTimer(tv, 5); //set up a delay timer
    printf("start counting.\n");
    while (1)
        if (CheckTimer(tv, 5) == 1)
            printf("Welcome to cc.byexamples.com\n");
    return 0;
}

我收到以下错误:无法解析字段tv_sec

我在网上搜索过它,但似乎没有人给出具体答案。

我尝试了查看库sys/time.htime.h的机会,但似乎都没有定义这个结构但是无论如何使用它。

我错过了任何图书馆吗?由于这个例子相当陈旧,做了一些改变,需要以不同的方式完成吗?我很欣赏任何景象。

PS:我在Ubuntu 11.10和g ++ 4.6.1下使用Eclipse CDT Indigo。

2 个答案:

答案 0 :(得分:0)

尝试将其放入您的文件中:#define __USE_GNU

答案 1 :(得分:0)

最后这是一个Eclipse问题,因为它无法索引time.h库。我按照this other SF question最受欢迎的答案解决了这个问题:

手动将time.h添加到C / C ++索引器。

目前我正在使用Eclipse CDT Juno,问题似乎不再发生了。作为Eclipse CDT Juno中的旁注,我找不到手动编辑C / C ++索引器设置的位置。