localtime()
gettimeofday()
現在、などの関数の助けを借りて現在の日時を受け取ることができますtime.h
ユーザーが Linux の日付と時刻の設定を変更して、日付を以前の日付に変更したとします。上記の関数を呼び出すと、これらの変更が取得されます。
システムの日付と時刻の設定を変更するユーザーに関係なく、現在の時刻、つまり今日の時刻を取得したいと思います。
同じことを達成する方法はありますか?
適切な権限を持つユーザーがシステム時刻を変更すると、システムは新しい値を認識します。
したがって、正確な時間について他人の意見を得る唯一の方法は、システムの外に出ることです。たとえば、NTP プロトコルを介してタイム サーバーに接続できます。
安価で楽しいソリューションとして、 http://www.whattimeisit.com/などの Web ページを取得できます。もちろん、これは (せいぜい) ダウンロードの待ち時間によって不正確になります。これは、NTP クライアントが巧妙に対処することの 1 つです。
あなたが望むのが「正しい」時間ではなく、使用中にジャンプしない時間だけである場合はclock_gettime
、具体的に調べることができますCLOCK_MONOTONIC
.
システム時刻と同期していない場合は、ハードウェア クロックの読み取りを調べることができます。hwclock のマニュアル ページを参照してください。
そのページのメモ セクションには、同期を確認する方法に関する情報も含まれています。