getrusage(2) System Calls Manual getrusage(2) NOM getrusage - Lire l'utilisation des ressources BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include int getrusage(int who, struct rusage *usage); DESCRIPTION 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 a la somme des ressources utilisees par tous les processus legers (threads) du processus. RUSAGE_CHILDREN Renvoyer les statistiques d'utilisation des ressources pour tous les processus fils du processus appelant qui se sont termines et dont la fin a ete attendue (avec wait(2)). Ces statistiques incluront les ressources utilisees par les petits-enfants, et autres descendants deja retires 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 pour le thread appelant. La macro de test de fonctionnalite _GNU_SOURCE doit etre definie prealablement (avant l'inclusion d'un fichier d'en-tete) afin d'obtenir la definition de cette constante a partir de . L'utilisation des ressources est renvoyee dans la structure pointee par usage, qui est de la forme suivante : struct rusage { struct timeval ru_utime; /* Temps CPU utilisateur ecoule */ struct timeval ru_stime; /* Temps CPU systeme ecoule */ long ru_maxrss; /* Taille residente maximale */ long ru_ixrss; /* Taille de memoire partagee */ long ru_idrss; /* Taille des donnees non partagees */ long ru_isrss; /* Taille de pile */ long ru_minflt; /* Demandes de pages (soft) */ long ru_majflt; /* Nombre de fautes de pages (hard) */ long ru_nswap; /* Nombre de swaps */ long ru_inblock; /* Nombre de lectures de blocs */ long ru_oublock; /* Nombre d'ecritures de blocs */ long ru_msgsnd; /* Nombre de messages IPC emis */ long ru_msgrcv; /* Nombre de messages IPC recus */ long ru_nsignals; /* Nombre de signaux recus */ long ru_nvcsw; /* Chgmnts de contexte volontaires */ long ru_nivcsw; /* Chgmnts de contexte involontaires*/ }; Tous les champs ne sont pas completement remplis ; les champs non maintenus sont mis a zero par le noyau (les champs non maintenus sont fournis pour assurer la compatibilite avec d'autres systemes, et parce qu'ils pourraient un jour etre supportes par Linux). Ces champs ont la signification suivante : ru_utime Temps total passe en mode utilisateur, mis dans une structure timeval (secondes et microsecondes). ru_stime Temps total passe en mode noyau, mis dans une structure timeval (secondes et microsecondes). ru_maxrss (depuis Linux 2.6.32) Taille maximale de memoire residente utilisee (en kilooctets). Pour RUSAGE_CHILDREN, il s'agit de la taille residente du fils le plus grand, et non de la taille residente maximale du processus. ru_ixrss (non maintenu) Ce champ n'est actuellement pas utilise par Linux. ru_idrss (non maintenu) Ce champ n'est actuellement pas utilise par Linux. ru_isrss (non maintenu) Ce champ n'est actuellement pas utilise par Linux. ru_minflt Le nombre d'erreurs de pagination (page fault) sans activite d'entrees-sorties. Ici, cette activite est empechee en reclamant une page qui se trouve dans la liste des pages qui attendent d'etre reallouees. ru_majflt Le nombre d'erreurs de pagination avec activite d'entrees-sorties. ru_nswap (non maintenu) Ce champ n'est actuellement pas utilise par Linux. ru_inblock (depuis Linux 2.6.22) Le nombre de fois ou le systeme de fichiers a du traiter des entrees. ru_oublock (depuis Linux 2.6.22) Le nombre de fois ou le systeme de fichiers a du traiter des sorties. ru_msgsnd (non maintenu) Ce champ n'est actuellement pas utilise par Linux. ru_msgrcv (non maintenu) Ce champ n'est actuellement pas utilise par Linux. ru_nsignals (non maintenu) Ce champ n'est actuellement pas utilise par Linux. ru_nvcsw (depuis Linux 2.6) Le nombre de changements de contexte provoques par un processus qui abandonne volontairement le processeur avant la fin de la tranche de temps qui lui est devolue (habituellement pour attendre la disponibilite d'une ressource). ru_nivcsw (depuis Linux 2.6) Le nombre de changements de contexte provoques par un processus de plus grande priorite qui devient disponible a l'execution, ou parce que le processus actuel a depasse le temps limite qui lui etait alloue. VALEUR RENVOYEE En cas de succes, zero est renvoye. En cas d'erreur, -1 est renvoye et errno est definie pour preciser l'erreur. ERREURS EFAULT usage pointe en dehors de l'espace d'adressage disponible. EINVAL who est invalide. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |getrusage() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ STANDARDS POSIX.1-2008. POSIX.1 specifie getrusage(), mais specifie seulement les champs ru_utime et ru_stime. RUSAGE_THREAD est specifique a Linux. HISTORIQUE POSIX.1-2001, SVr4, 4.3BSD. Avant Linux 2.6.9, si le traitement de SIGCHLD est configure avec SIG_IGN, les statistiques d'utilisation des processus enfants sont automatiquement incluses dans les valeurs renvoyees par RUSAGE_CHILDREN, bien que POSIX.1-2001 interdise explicitement cela. Cette non conformite est corrigee sous Linux 2.6.9 et ulterieurs. La definition de la structure fournie au debut de cette page provient de 4.3BSD Reno. Des systemes anciens fournissaient une fonction vtimes() qui remplissait le meme role que getrusage(). Pour des raisons de compatibilite ascendante, la glibc (jusqu'a Linux 2.32) fournit aussi une fonction vtimes(). Toutes les nouvelles applications devraient utiliser getrusage() (depuis la Linux 2.33, la glibc ne fournit plus d'implementation de vtimes()). NOTES Les mesures de l'utilisation des ressources sont conservees au travers d'un execve(2). 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) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Cedric Boutillier , Frederic Hantrais et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 getrusage(2)