time.h を使用して C で現在の時間を取得する

現地時間。 http://linux.die.net/man/3/localtime を参照

time_t now = time(NULL);
struct tm *tm_struct = localtime(&now);

int hour = tm_struct->tm_hour;

呼び出し localtime(time(NULL)) 動作しません。 time() の戻り値 time_t です 、および localtime の最初の引数は time_t* です .どちらも受け入れられた答えではなく、printf を使用した答えも正しくありません。

time_t now;
struct tm *now_tm;
int hour;

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

printf("the hour is %d\n", localtime(time(NULL))->tm_hour);

これは localtime() という事実に依存しています 静的ストレージへのポインターを返します。