Respuestas:
Creo que la confusión proviene del hecho de que el sistema subyacente que se llama ulimit wraps se llama setrlimit .
extracto de la página de manual de ulimit
La función ulimit () controlará los límites del proceso. Los límites del proceso que puede controlar esta función incluyen el tamaño máximo de un solo archivo que se puede escribir (esto es equivalente a usar setrlimit () con RLIMIT_FSIZE).
Además, si observa la setrlimit
página de manual, se llama a la estructura de datos subyacente que contiene la información de límite rlimit
.
extracto de la página de manual de setrlimit
getrlimit y setrlimit obtienen y establecen límites de recursos respectivamente. Cada recurso tiene un límite blando y duro asociado, como lo define la estructura rlimit (el argumento rlim para getrlimit () y setrlimit ()):
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
En referencia a la página de manual de ulimit, es un comando bash shell para controlar los límites del sistema y una parte de bash-builtins como printf, read, source, etc.
En referencia a la página getrlimits , representa las API a través de C / C ++ utilizando llamadas del sistema para controlar los límites del sistema. La documentación adicional de glibc explica mejor los límites (= límites de recursos).
ulimit
pueden ser dos cosas:
una interfaz de API POSIX 7 C que se desaprobó a favor de getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
Las aplicaciones deben usar las funciones getrlimit () o setrlimit () en lugar de la función obsoleta ulimit ().
Este no fue el caso cuando se sim
respondió en POSIX 6.
En GNU / Linux, getrlimit()
y ulimit()
se implementan con la sys_getrlimit
llamada al sistema. No existe sys_ulimit
.
una utilidad POSIX 7 CLI no obsoleta: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
Se puede implementar con ulimit()
o getrlimit()
.