Ce que l'API dois-je appeler pour obtenir le temps de disponibilité du système?
Je voudrais obtenir la disponibilité du système à partir de l'intérieur d'une application C en cours d'exécution sur un système linux. Je ne veux pas l'appeler uptime(1) et d'analyser les données en sortie, je voudrais appeler le sous-jacent de l'API C je soupçonne existe. Quelqu'un sait si il y a un tel appel, ou ne uptime(1), il suffit de traiter les enregistrements obtenus à partir de wtmp?
- est-il possible d'obtenir la disponibilité du nano secondes ??? Avez-vous essayé ?
Vous devez vous connecter pour publier un commentaire.
L'appel système que vous cherchez est sysinfo().
Il est défini dans sys/sysinfo.h
Sa signature est:
int sysinfo(struct sysinfo *info)
Depuis le noyau 2.4, la structure a regardé comme ça:
Amusez-vous!
Qui serait quelque chose comme ceci.
Voir "l'homme sysinfo" pour plus d'info.
Lire le fichier
/proc/uptime
et de prendre le premier nombre décimal que le temps de fonctionnement en secondes.De
homme 5 proc
:strace
lauptime(1)
de commande, vous verrez que c'est exactement ce qu'.Il y a aussi clock_gettime (probablement besoin de
-lrt
). Le comportement que j'ai vu (je ne vais pas prétendre que c'est garanti), maisCLOCK_MONOTONIC
comme leclk_id
est qu'il renvoie à la disponibilité du système dans lestruct timespec *
paramètre.