0

我正在尝试运行取自这个简单的计时器示例的以下代码片段:

#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。

4

2 回答 2

0

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

于 2013-06-20T12:19:18.930 回答
0

最后这是一个 Eclipse 问题,因为它无法索引该time.h库。我通过遵循另一个 SF 问题的最受好评的答案解决了这个问题

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

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

于 2013-08-23T15:24:38.133 回答