Provided by: manpages-fr-dev_4.21.0-2_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⟩.