カーネルログと同じ形式でログ出力を書きたい:
[ 11.947248] fsl-gianfar ffe24000.ethernet eth0: Link is Up
タイムスタンプには、カーネル時間と同じ時間参照が必要です。これは、ログメッセージがカーネルで行われると同時に発行される場合、タイムスタンプは同じ値を持つ必要があることを意味します。
には定義されclock_gettime
ていないクロックの開始点があります。したがって、すべてのプログラムのタイムスタンプは、同時に作成された場合でも異なる値になります。
clock_gettime(CLOCK_REALTIME, &ts);
clock_gettime(CLOCK_MONOTONIC, &ts);
使用gettimeofday
すると、定義上一致しない Unix エポック以降の時間が取得されます。
この関数localtime()
は稼働時間を返しますが、粒度は秒単位ですが、もっと必要です...
更新:それはclock_gettime(CLOCK_REALTIME, &ts)
私が望むことをするべきだと思われます...しかし、eglibcはCLOCK_MONOTONIC
代わりに戻ってくるようです。