/ / Получаване на текущия час в C, използвайки time.h - c, time

Получаване на текущия час в C, използвайки time.h - c, време

Общо новият въпрос тук; Извинявам се предварително.

Да предположим, че има демон, написан на С, който се събуждасе прави на всеки пет минути или така, прави някаква обработка, ако има нещо в неговата входна опашка, а след това се връща в сън. , 14:00 (и преди полунощ).

В C, какво е най-бързият, най-добрият начин да получите часа на текущото време в променлива int, така че да може лесно да бъде проверен с - да се определи дали, всъщност, е след 14:00 днес?

Отговори:

17 за отговор № 1

местно време. виждам http://linux.die.net/man/3/localtime

struct tm *tm_struct = localtime(time(NULL));

int hour = tm_struct->tm_hour;

7 за отговор № 2
printf("the hour is %dn", localtime(time(NULL))->tm_hour);

Това разчита на факта, че localtime() връща указател към статично хранилище.


7 за отговор № 3

Повикването localtime(time(NULL)) никога няма да работи. Връщаната стойност на time() е time_tи първият аргумент на localtime е a time_t*, Нито пък е приетият отговор, нито пък този с printf правилен.

time_t now;
struct tm *now_tm;
int hour;

now = time(NULL);
now_tm = localtime(&now);
hour = now_tm->tm_hour;