Общо новият въпрос тук; Извинявам се предварително.
Да предположим, че има демон, написан на С, който се събуждасе прави на всеки пет минути или така, прави някаква обработка, ако има нещо в неговата входна опашка, а след това се връща в сън. , 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;