/ / Uzyskiwanie bieżącej godziny w C przy użyciu time.h - c, time

Pobranie bieżącej godziny w C przy użyciu time.h - c, time

Całkowite pytanie dla początkujących tutaj; Z góry przepraszam.

Załóżmy, że mam demona napisanego w C, który się budziuruchamia się co około pięć minut, wykonuje pewne przetwarzanie, jeśli coś jest w kolejce wejściowej, a następnie wraca do trybu uśpienia. Załóżmy teraz, że istnieje pewne przetwarzanie, które musi wykonać tylko po pewnym (konfigurowalnym) czasie - powiedz , 2 po południu (i przed północą).

W C, jaki jest najszybszy i najlepszy sposób na przekształcenie godziny bieżącej godziny w zmienną int, aby można ją było łatwo porównać z - w celu ustalenia, czy w rzeczywistości jest dzisiaj po 14:00?

Odpowiedzi:

17 dla odpowiedzi nr 1

czas lokalny. Widzieć http://linux.die.net/man/3/localtime

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

int hour = tm_struct->tm_hour;

7 dla odpowiedzi nr 2
printf("the hour is %dn", localtime(time(NULL))->tm_hour);

Zależy to od tego, że localtime() zwraca wskaźnik do pamięci statycznej.


7 dla odpowiedzi nr 3

Telefon localtime(time(NULL)) nigdy nie zadziała. Zwracana wartość time() jest time_t, a pierwszym argumentem czasu lokalnego jest time_t*. Ani zaakceptowana odpowiedź, ani odpowiedź z printf nie jest poprawna.

time_t now;
struct tm *now_tm;
int hour;

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