Отметка времени NTP в программе на Си - PullRequest
1 голос
/ 18 октября 2011

Я хочу написать программу на C, которая получает системное время и, следовательно, использует это время для распечатки своего ntp-эквивалента.

Прав ли я, говоря, что следующее верно для секундной части времени NTP?

long int ntp.seconds = time(NULL) + 2208988800;

Как я могу рассчитать долю?

1 Ответ

1 голос
/ 18 октября 2011

Дробная часть для добавления, очевидно, равна 0ps ...; -)

Таким образом, вопрос о дроби может быть сведен к тому, насколько точны системные часы.

gettimeofday() дает вам микросекунды. clock_gettime() может дать вам нано секунд.

В любом случае, я сомневаюсь, что вы достигнете теоретически возможного разрешения, которое допускает значение 32-битной ширины для дроби (по крайней мере, на стандартном ПК).

...