読者です 読者をやめる 読者になる 読者になる

gmtime

UNIXシステムコール

gmtimeは、指定されたtime_t型変数のUNIX時間をグリニッジ標準時の時刻に変換し、
時刻情報をtm構造体に格納するC標準ライブラリ関数・・・。
(これ自身はシステムコールではないが、timeシステムコールに関連するライブラリ関数なので、このカテゴリで扱う・・・。)

Manpage of CTIME

tm構造体は、年月日や、時分秒から、七曜、夏時間までのさまざまな情報を格納している・・・。
今回は、tm構造体を使って現在時刻を文字列表現する・・・。

現在のUNIX時間を格納するt、変換したグリニッジ標準時を格納するtm構造体のポインタtm_ptrを用意する・・・。
gmtimeはtm構造体そのものを返せないので、ポインタでアクセスするしかない・・・。

timeでUNIX時間を取得しtに格納・・・。

gmtimeにtのアドレスを渡す・・・。すると、グリニッジ標準時のtm構造体のポインタがtm_ptr返ってくる・・・。

tm_yearは年の下2桁、tm_monは月(ただし0から始まる)、tm_mdayは日、tm_hourは時間、tm_minは分、tm_secは秒・・・。
これをprintfで指定書式で出力・・・。

$ ./gmtime
[GMT] 2015/6/26 5:30:22
$ ./gmtime
[GMT] 2015/6/26 5:30:23
$ ./gmtime
[GMT] 2015/6/26 5:30:24
$

このように実行するたびに現在時刻の文字列が出力される・・・。

Sample/gmtime.c at master · bg1bgst333/Sample · GitHub