GETRUSAGE(2)

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 l'utilisation des ressources actuelles pour who valant RUSAGE_SELF ou RUSAGE_CHILDREN. Le premier correspond aux ressources consommées par le processus appelant et le second par l'ensemble des processus fils terminés qui ont été attendus par un wait(2).

struct rusage {
  struct timeval ru_utime; /* Temps utilisateur écoulé         */
  struct timeval ru_stime; /* Temps 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                */
  long  ru_majflt;         /* Nombre de fautes de pages        */
  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 émis          */
  long  ru_msgrcv;         /* Nombre de messages reçus         */
  long  ru_nsignals;       /* Nombre de signaux reçus          */
  long  ru_nvcsw;          /* Chgmnts de contexte volontaires  */
  long  ru_nivcsw;         /* Chgmnts de contexte involontaires*/
};

VALEUR RENVOYÉE
Ces appels renvoient 0 s'ils réussissent, ou -1 s'ils échouent, auquel cas errno est renseignée 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.

NOTES
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>.)

Dans les noyaux Linux antérieurs à 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é a été corrigé dans Linux 2.6.9 et suivants.

La définition de la structure présentée en début de page est extraite de BSD 4.3 Reno. Tous les champs ne sont pas significatifs sous Linux. Sous Linux 2.4, seuls les champs ru_utime, ru_stime, ru_minflt et ru_majflt sont renseignés. Depuis Linux 2.6, ru_nvcsw et ru_nivcsw sont également remplis.

VOIR AUSSI
getrlimit(2), times(2), wait(2), wait4(2), time(7)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 11 octobre 1996 et révisée le 17 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 getrusage ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.