Основным недостатком вашего кода является использование time()
. Это возвращает значение в секундах, поэтому ваш цикл может длиться от 4 до 5 секунд. Вместо этого вы должны использовать gettimeofday()
, который предоставляет поле микросекунд (, хотя разрешение может быть хуже, чем ).
Вы также можете уменьшить изменчивость, сделав свой процесс реальным -временным процессом. Используйте chrt -f
для запуска вашей команды или вызовите sched_setscheduler()
с помощью SCHED_FIFO
.