Les MANs Linux en français...
GETRLIMIT
Section: Manuel du programmeur Linux (2)Updated: 19 janvier 2002
Index Retour au Menu Principal
NOM
getrlimit, getrusage, setrlimit - Lire / écrire les limites d'utilisation des ressources systèmes.SYNOPSIS
#include <sys/time.h>#include <sys/resource.h>
#include <unistd.h>
int getrlimit (int resource, struct rlimit *rlim);
int getrusage (int who, struct rusage *usage);
int setrlimit (int resource, const struct rlimit *rlim);
DESCRIPTION
getrlimit et setrlimit lisent ou écrivent les limites des ressources systèmes. resource doit être l'un des éléments suivants :
RLIMIT_CPU /* Temps CPU en secondes */
RLIMIT_FSIZE /* Taille maximale d'un fichier */
RLIMIT_DATA /* Taille maximale zone de données */
RLIMIT_STACK /* Taille maximale de la pile */
RLIMIT_CORE /* Taille maximale fichier core */
RLIMIT_RSS /* Taille résidente maximale */
RLIMIT_NPROC /* Nombre maximal de processus */
RLIMIT_NOFILE /* Nombre maximal fichiers ouverts */
RLIMIT_MEMLOCK /* Verrouillage maximal en mémoire */
Une ressource peut être illimitée si l'on précise RLIM_INFINITY. RLIMIT_OFILE est le nom "BSD" pour RLIMIT_NOFILE.
La structure rlimit est définie comme suit :
struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; };
Sous Linux 2.2, rlim_t est équivalent à un long int.
getrusage renvoie l'utilisation courante des ressources, pour who correspondant à RUSAGE_SELF, RUSAGE_CHILDREN, ou RUSAGE_BOTH correspondant aux ressources consommées respectivement par le processus appelant, l'ensemble des processus fils terminés, ou la somme de ces deux statistiques.
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 fonctions renvoient 0 si elles réussissent, ou -1 si elles échouent, auquel cas errno contient le code d'erreur.ERREURS
- EFAULT
- rlim ou usage pointent en dehors de l'espace d'adressage disponible.
- EINVAL
- getrlimit ou setrlimit est appelé avec un mauvais argument resource, ou getrusage est appelé avec un mauvais argument who.
- EPERM
- Tentative d'utiliser setrlimit() sans être Super-User pour augmenter ses limites, ou alors le Super-User essaye d'augmenter les limites au-dessus des maxima du noyau.
CONFORMITÉ
SVr4, BSD 4.3NOTE
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>).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 AUSSI
quotactl(2), ulimit(3)TRADUCTION
Christophe Blaess, 1997.
Index
Time: 21:39:35 GMT, December 19, 2004