dwww Home | Manual pages | Find package

getrusage(2)                  System Calls Manual                 getrusage(2)

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  in-
              cluront  les  ressources  utilisées  par  les petits-enfants, et
              autres descendants déjà retirés si tous les descendants en ques-
              tion 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 main-
       tenus sont mis à zéro par le noyau (les champs non maintenus sont four-
       nis 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 proces-
              sus.

       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-sor-
              ties.

       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 en-
              tré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 at-
              tendre 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  au-
       tomatiquement  incluses dans les valeurs renvoyées par RUSAGE_CHILDREN,
       bien que POSIX.1-2001 interdise explicitement cela. Cette non conformi-
       té 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  remplis-
       sait  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 getru-
       sage() (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 Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.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.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.org>, David Prévot  <david@tilapin.org>,  Cédric  Boutillier  <ce-
       dric.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⟩.

Pages du manuel de Linux 6.03  15 décembre 2022                   getrusage(2)

Generated by dwww version 1.15 on Sat Jun 29 01:53:15 CEST 2024.