Я хочу написать лог-вывод в том же формате, что и ядро-журнал:eglibc: Получение, проведённое на сайте в миллисекундах
[ 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()
возвращает время безотказной работы - но зернистость в секундах - но мне нужно больше ...
Update: It seems что clock_gettime(CLOCK_REALTIME, &ts)
должен делать то, что я хочу ... но eglibc, кажется, возвращает CLOCK_MONOTONIC
.
Чтение/proc/uptime не является решением для каждого вызова журнала, а getnstimeofday() доступен только в kernelspace ... – Charly