Provided by: manpages-fr-dev_4.19.0-7_all bug

NOM

       getrusage - Lire l'utilisation des ressources

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #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 pour le thread appelant.  La
              macro  de test de fonctionnalité _GNU_SOURCE doit être définie préalablement (avant
              l'inclusion d'un fichier d'en-tête) afin d'obtenir la définition de cette constante
              à partir de <sys/resource.h>.

       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

       En  cas  de succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno est définie
       pour préciser l'erreur.

ERREURS

       EFAULT usage pointe en dehors de l'espace d'adressage disponible.

       EINVAL who est invalide.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │getrusage()                                             │ Sécurité des threads │ MT-Safe │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.  POSIX.1  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).

       Avant   Linux 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 fournissaient une fonction vtimes() qui remplissait le même rôle  que
       getrusage().  Pour  des raisons de compatibilité ascendante, la glibc (jusqu'à 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'implémentation de vtimes()).

       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  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot   <david@tilapin.org>,   Cédric   Boutillier
       <cedric.boutillier@gmail.com>,  Frédéric  Hantrais  <fhantrais@gmail.com> et Jean-Philippe
       MENGUAL <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.