Linux fournit-il une horloge aux applications qui augmente de façon monotone
Question
Est-ce que Linux / Unix / Posix fournit une API aux applications d’espace utilisateur pour accéder à une horloge qui augmente de façon monotone, avec une précision de une centiseconde à une milliseconde?
Sous Linux, / proc / uptime fournit une représentation sous forme de chaîne d'un nombre à virgule flottante représentant le nombre de secondes pendant lesquelles le système a été activé.
gettimeofday (2) ne fournit pas une horloge à croissance monotone.
Je pourrais utiliser getitimer (2) dans le domaine temporel ITIMER_REAL, régler le minuteur pour qu'il démarre au maximum (dépendant de la plate-forme) et ignorer le signal généré, mais selon la page de manuel, le minuteur peut fonctionner le plus longtemps (environ 100) jours, ce qui est plus court que mon temps d'exécution prévu.
La solution
Utilisez la fonction POSIX clock_gettime ()
avec CLOCK_MONOTONIC
. Consultez la page de manuel pour plus de détails.
Autres conseils
Il y a clock_gettime:
struct timespec tp;
clock_gettime(CLOCK_MONOTONIC, &tp);