Поле tv_sec не может быть разрешено

Я пытаюсь запустить следующий фрагмент кода, взятый из этот простой пример таймера:

#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: я использую Eclipse CDT Indigo под Ubuntu 11.10 и g ++ 4.6.1.

0

Решение

попробуйте поместить это в ваш файл: #define __USE_GNU

0

Другие решения

В конце концов это была проблема Eclipse, так как он не смог проиндексировать time.h библиотека. Я решил это, следуя наиболее одобренному ответу этот другой вопрос SF:

Добавление вручную time.h к индексатору C / C ++.

В настоящее время я использую Eclipse CDT Juno, и проблема, похоже, больше не возникает. В качестве побочного комментария в Eclipse CDT Juno я не смог найти место, где можно вручную редактировать настройки индексатора C / C ++.

0

По вопросам рекламы [email protected]