Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       getrusage - Lire l'utilisation des ressources

SYNOPSIS

       #include <sys/time.h>
       #include <sys/resource.h>

       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 à la somme des ressources utilisées par tous les processus légers
              (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 processus léger 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 CPU utilisateur écoulé     */
             struct timeval ru_stime; /* Temps CPU 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 (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'écritures de blocs      */
             long  ru_msgsnd;         /* Nombre de messages IPC émis      */
             long  ru_msgrcv;         /* Nombre de messages IPC reçus     */
             long  ru_nsignals;       /* Nombre de signaux reçus          */
             long  ru_nvcsw;          /* Chgmnts de contexte volontaires  */
             long  ru_nivcsw;         /* Chgmnts de contexte involontaires*/
           };

       Tous  les  champs  ne  sont pas complètement remplis ; les champs non maintenus sont mis à
       zéro par le noyau (les champs non maintenus sont fournis  pour  assurer  la  compatibilité
       avec  d'autres systèmes, et parce qu'ils pourraient un jour être supportés par Linux). Ces
       champs ont la signification suivante :

       ru_utime
              Temps total passé en mode utilisateur, mis dans une structure timeval (secondes  et
              microsecondes).

       ru_stime
              Temps  total  passé  en  mode  noyau,  mis  dans une structure timeval (secondes et
              microsecondes).

       ru_maxrss (depuis Linux 2.6.32)
              Taille   maximale   de   mémoire   résidente   utilisée   (en   kilooctets).   Pour
              RUSAGE_CHILDREN,  il s'agit de la taille résidente du fils le plus grand, et non de
              la taille résidente maximale du processus.

       ru_ixrss (non maintenu)
              Ce champ n'est actuellement pas utilisé par Linux.

       ru_idrss (non maintenu)
              Ce champ n'est actuellement pas utilisé par Linux.

       ru_isrss (non maintenu)
              Ce champ n'est actuellement pas utilisé par Linux.

       ru_minflt
              Le nombre d'erreurs de pagination (page  fault)  sans  activité  d'entrées-sorties.
              Ici,  cette activité est empêchée en réclamant une page qui se trouve dans la liste
              des pages qui attendent d'être réallouées.

       ru_majflt
              Le nombre d'erreurs de pagination avec activité d'entrées-sorties.

       ru_nswap (non maintenu)
              Ce champ n'est actuellement pas utilisé par Linux.

       ru_inblock (depuis Linux 2.6.22)
              Le nombre de fois où le système de fichiers a dû traiter des entrées.

       ru_oublock (depuis Linux 2.6.22)
              Le nombre de fois où le système de fichiers a dû traiter des sorties.

       ru_msgsnd (non maintenu)
              Ce champ n'est actuellement pas utilisé par Linux.

       ru_msgrcv (non maintenu)
              Ce champ n'est actuellement pas utilisé par Linux.

       ru_nsignals (non maintenu)
              Ce champ n'est actuellement pas utilisé par Linux.

       ru_nvcsw (depuis Linux 2.6)
              Le nombre de changements de contexte  provoqués  par  un  processus  qui  abandonne
              volontairement  le  processeur  avant  la  fin  de  la tranche de temps qui lui est
              dévolue (habituellement pour attendre la disponibilité d'une ressource).

       ru_nivcsw (depuis Linux 2.6)
              Le nombre de changements de contexte provoqués par  un  processus  de  plus  grande
              priorité  qui  devient disponible à l'exécution, ou parce que le processus actuel a
              dépassé le temps limite qui lui était alloué.

VALEUR RENVOYÉE

       S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno  en
       conséquence.

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 la structure fournie au début de cette page provient de 4.3BSD Reno.

       Des systèmes anciens fournissent une fonction  vlimit()  qui  remplit  le  même  rôle  que
       getrusage().  Pour  des  raisons  de  compatibilité ascendante, la glibc fournit aussi une
       fonction vlimit(), mais toutes les nouvelles applications devraient utiliser getrusage().

       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.32 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <URL:http://po4a.alioth.debian.org/>  par  l'équipe  de  traduction francophone au sein du
       projet perkamon <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <URL:http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau et l'équipe francophone de
       traduction de Debian (2006-2009).

       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> ».