Я бы на самом деле не использовал занятый опрос часов в программе на Си, это системный вызов.Это подходит для µController, но не так для ОС.Вы можете просто использовать usleep.
В любом случае clock_gettime timespec, так что просто делайте осторожные вычисления (следя за тем, чтобы не переполнить ваши longs).(длинный) (now.tv_sec - prev.tv_sec) *1000* 1000 + (now.tv_nsec - prev.tv_nsec) / 1000
PS Разве вы не должны инициализировать prev в своем коде?