Réponses:
Je pense que la confusion vient du fait que l'appel système sous-jacent qui encapsule ulimit est appelé setrlimit .
extrait de la page de manuel ulimit
La fonction ulimit () doit contrôler les limites du processus. Les limites de processus qui peuvent être contrôlées par cette fonction incluent la taille maximale d'un seul fichier qui peut être écrit (cela équivaut à utiliser setrlimit () avec RLIMIT_FSIZE).
De plus, si vous regardez la setrlimit
page de manuel, la structure de données sous-jacente qui contient les informations de limite est appelée rlimit
.
extrait de la page de manuel setrlimit
getrlimit et setrlimit obtiennent et définissent des limites de ressources respectivement. Chaque ressource a une limite logicielle et matérielle associée, telle que définie par la structure rlimit (l'argument rlim de getrlimit () et setrlimit ()):
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
Se référant à la page de manuel ulimit , il s'agit d'une commande shell bash pour contrôler les limites du système et une partie des commandes intégrées bash comme printf, read, source, etc.
En référence à la page getrlimits , elle représente les API via C / C ++ à l'aide d'appels système pour contrôler les limites du système. Une documentation supplémentaire sur la glibc explique mieux les limites (= limites de ressources).
ulimit
peut être deux choses:
une interface API POSIX 7 C déconseillée au profit de getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
Les applications doivent utiliser les fonctions getrlimit () ou setrlimit () au lieu de la fonction obsolète ulimit ().
Ce n'était pas le cas lors de la sim
réponse sur POSIX 6.
Sur GNU / Linux, getrlimit()
et ulimit()
sont implémentés avec l' sys_getrlimit
appel système. Il n'y en a pas sys_ulimit
.
un utilitaire CLI POSIX 7 non déconseillé: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
Il peut être implémenté avec ulimit()
ou getrlimit()
.