|
|||||||
|
|
GETRLIMITSection: Manuel du programmeur Linux (2)Updated: 18 juillet 2003 Index Return to Main Contents NOMgetrlimit, getrusage, setrlimit - Lire/écrire les limites et utilisations des ressources.SYNOPSIS#include <sys/time.h>#include <sys/resource.h> #include <unistd.h>
int getrlimit (int resource, struct rlimit *rlim);
DESCRIPTIONgetrlimit et setrlimit lisent ou écrivent les limites des ressources systèmes. Chaque ressource a une limite souple et une limite stricte définies par la structure rlimit (l'argument rlim de getrlimit() et setrlimit()) :
struct rlimit {
rlim_t rlim_cur; /* limite souple */
rlim_t rlim_max; /* limite stricte (plafond
de rlim_cur) */
};
La limite souple est la valeur que le noyau prend en compte pour la
ressource correspondante.
La limite stricte agit comme un plafond pour la limite souple : un processus
non-privilégié peut seulement modifier sa limite souple dans l'intervalle entre
zéro et la limite stricte, et diminuer (de manière irréversible) sa limite
stricte. Un processus privilégié peut modifier ses deux limites à sa guise.
La valeur RLIM_INFINITY indique une limite infinie pour la ressource (aussi bien pour getrlimit() que pour setrlimit(). resource doit être l'un des éléments suivants :
RLIMIT_OFILE est le nom BSD pour RLIMIT_NOFILE. getrusage renvoie l'utilisation courante des ressources, 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().
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ÉECes fonctions renvoient 0 si elles réussissent, ou -1 si elles échouent, auquel cas errno contient le code d'erreur.ERREURS
CONFORMITÉSVr4, BSD 4.3NOTEL'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, si le traitement de SIGCHLD est configuré avec SIG_IGN alors les statistiques d'utilisation des processus enfants sont automatiquement incluses dans les valeurs renvoyées par RUSAGE_CHILDREN, bien que POSIX 1003.1-2001 interdise explicitement cela. Les structures ci-dessous sont extraites de BSD 4.3 Reno. Tous les champs ne sont pas significatifs sous Linux. Actuellement (Linux 2.4) seuls les champs ru_utime, ru_stime, ru_minflt, ru_majflt, et ru_nswap sont remplis. VOIR AUSSIdup(2), fcntl(2), fork(2), mlock(2), mlockall(2), mmap(2), open(2), quotactl(2), sbrk(2), wait3(2), wait4(2), malloc(3), ulimit(3), signal(7)TRADUCTIONChristophe Blaess, 1996-2003.
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2009 Linuxinfor.com. No rights reserved. |