mktimeは、ローカル時刻が格納されているtm構造体の時刻情報をUNIX時間へ変換し、time_t型変数として返すC標準ライブラリ関数・・・。
ここまでで、
time: time_tを取得
localtime: time_t -> tm構造体
asctime: tm構造体 -> 時刻文字列
strptime: 時刻文字列 -> tm構造体
mktime: tm構造体 -> time_t
このような変換ができることがわかる・・・。
そこで、これらの関数を使って、現在のUNIX時間t1を一旦時刻文字列に変換した後、
その文字列から元のUNIX時間t2に戻す処理をやってみる・・・。
このように必要な変数や構造体を用意し、
まずは、timeでUNIX時間t1を取得して、printfで出力・・・。
localtimeでローカル時刻に変換、返ってくるtm_ptrの内容を見る・・・。
asctimeで時刻文字列strが返るので、これを出力・・・。
strptimeでstrをパースし、渡したstmに時刻情報が入るのでこれを見る・・・。
mktimeでローカル時刻のstmからUNIX時間のt2が求められる・・・。
$ ./mktime [UNIXTime]: 1435890577 [JST]: 2015/7/3 11:29:37 [TimeString]: Fri Jul 3 11:29:37 2015 [TimeString To JST]: 2015/07/03 11:29:37 [JST To UNIXTime]: 1435890577 $
最初のt1([UNIXTime]: 1435890577)と、最後のt2([JST To UNIXTime]: 1435890577)が同じ値・・・。