Я пытаюсь запустить следующий фрагмент кода, взятый из этот простой пример таймера:
#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.
попробуйте поместить это в ваш файл: #define __USE_GNU
В конце концов это была проблема Eclipse, так как он не смог проиндексировать time.h
библиотека. Я решил это, следуя наиболее одобренному ответу этот другой вопрос SF:
Добавление вручную time.h
к индексатору C / C ++.
В настоящее время я использую Eclipse CDT Juno, и проблема, похоже, больше не возникает. В качестве побочного комментария в Eclipse CDT Juno я не смог найти место, где можно вручную редактировать настройки индексатора C / C ++.