NOM
getrusage - Lire l’utilisation des ressources
SYNOPSIS
#include <sys/time.h>
#include <sys/resource.h>
int getrusage(int who, struct rusage *usage);
getrusage() renvoie la mesure de l’utilisation des ressources pour who,
qui peut valoir une des valeurs suivantes :
RUSAGE_SELF
Renvoyer les statistiques d’utilisation des ressources pour le
processus appelant, ce qui correspond à la somme des ressources
utilisées par tous les threads du processus.
RUSAGE_CHILDREN
Renvoyer les statistiques d’utilisation des ressources pour tous
les processus fils du processus appelant qui se sont terminés et
dont la fin a été attendue (avec wait(2)). Ces statistiques
incluront les ressources utilisées par les petits-enfants, et
autres descendants déjà retirés si tous les descendants en
question ont attendu la fin de leurs enfants.
RUSAGE_THREAD (depuis Linux 2.6.26)
Renvoyer les statistiques d’utilisation des ressources du thread
appelant.
L’utilisation des ressources est renvoyée dans la structure pointée par
usage, qui est de la forme suivante :
struct rusage {
struct timeval ru_utime; /* Temps utilisateur écoulé */
struct timeval ru_stime; /* Temps système écoulé */
long ru_maxrss; /* Taille résidente maximale */
long ru_ixrss; /* Taille de mémoire partagée */
long ru_idrss; /* Taille des données non partagées */
long ru_isrss; /* Taille de pile */
long ru_minflt; /* Demandes de pages */
long ru_majflt; /* Nombre de fautes de pages */
long ru_nswap; /* Nombre de swaps */
long ru_inblock; /* Nombre de lectures de blocs */
long ru_oublock; /* Nombre d’écritures de blocs */
long ru_msgsnd; /* Nombre de messages émis */
long ru_msgrcv; /* Nombre de messages reçus */
long ru_nsignals; /* Nombre de signaux reçus */
long ru_nvcsw; /* Chgmnts de contexte volontaires */
long ru_nivcsw; /* Chgmnts de contexte involontaires*/
};
VALEUR RENVOYÉE
En cas de réussite, zéro est renvoyé, sinon -1 est renvoyé et errno
contient le code d’erreur.
ERREURS
EFAULT usage pointe en dehors de l’espace d’adressage disponible.
EINVAL who est invalide.
CONFORMITÉ
SVr4, BSD 4.3. POSIX.1-2001 spécifie getrusage(), mais spécifie
seulement les champs ru_utime et ru_stime.
RUSAGE_THREAD est spécifique à Linux.
NOTES
Les mesures de l’utilisation des ressources sont conservées au travers
d’un execve(2).
L’inclusion de <sys/time.h> n’est plus obligatoire mais améliore la
portabilité. (En fait, struct timeval est définie dans <sys/time.h>).
Sous Linux avant la version 2.6.9, si le traitement de SIGCHLD est
configuré avec SIG_IGN, les statistiques d’utilisation des processus
enfants sont automatiquement incluses dans les valeurs renvoyées par
RUSAGE_CHILDREN, bien que POSIX.1-2001 interdise explicitement cela.
Cette non conformité est corrigée sous Linux 2.6.9 et ultérieurs.
La définition de structure du début de la page provient de BSD 4.3
Reno. Tous les champs ne sont pas significatifs sous Linux. Sous Linux
2.4 seuls les champs ru_utime, ru_stime, ru_minflt, ru_majflt sont
remplis. Depuis Linux 2.6, ru_nvcsw et ru_nivcsw sont également
remplis. Depuis Linux 2.6.22, ru_inblock et ru_oublock sont également
remplis.
Consultez aussi la description de /proc/PID/stat dans proc(5).
VOIR AUSSI
clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».