我正在尝试运行从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.h
和time.h
的机会,但似乎都没有定义这个结构但是无论如何使用它。
我错过了任何图书馆吗?由于这个例子相当陈旧,做了一些改变,需要以不同的方式完成吗?我很欣赏任何景象。
PS:我在Ubuntu 11.10和g ++ 4.6.1下使用Eclipse CDT Indigo。
答案 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 ++索引器设置的位置。