GETRUSAGE(2) | Manuel du programmeur Linux | GETRUSAGE(2) |
getrusage - Lire l'utilisation des ressources
#include <sys/time.h>
#include <sys/resource.h>
int getrusage(int who, struct rusage *usage);
getrusage() renvoie la mesure de l'utilisation des ressources pour who, qui peut valoir une des valeurs suivantes :
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 :
En cas de succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno reçoit une valeur adéquate.
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur |
getrusage() | Sécurité des threads | MT-Safe |
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.
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 fournissaient une fonction vtimes() qui remplissait le même rôle que getrusage(). Pour des raisons de compatibilité ascendante, la glibc (jusqu'à la version 2.32) fournit aussi une fonction vtimes(). Toutes les nouvelles applications devraient utiliser getrusage().
Consultez aussi la description de /proc/[pid]/stat dans proc(5).
clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3)
Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.
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 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.
21 décembre 2020 | Linux |