O Linux fornecer um relógio monótona crescente para aplicações
Pergunta
O Linux / Unix / POSIX fornecer uma API para aplicações de espaço de usuário para acessar um relógio monótona crescente, com centisecond a precisão de milissegundos?
No Linux, / proc / uptime fornece uma representação à base de cadeia de um número de ponto flutuante do número de segundos que o sistema foi-se.
gettimeofday (2) não fornece um relógio monótona crescente.
Eu poderia usar getitimer (2) no domínio do tempo ITIMER_REAL, definir o temporizador para começar no (depende da plataforma) máxima e ignorar o sinal gerado, mas de acordo com a página do homem o mais longo o temporizador pode ser executado por é de aproximadamente 100 dias, que é mais curto do que o meu tempo de execução esperado.
Solução
Use a função clock_gettime()
POSIX com CLOCK_MONOTONIC
. Veja a homem página para mais detalhes.
Outras dicas
Há clock_gettime:
struct timespec tp;
clock_gettime(CLOCK_MONOTONIC, &tp);