Risposte:
Penso che la confusione derivi dal fatto che il sistema sottostante chiama quel wrapping ulimit si chiama setrlimit .
estratto dalla pagina man di ulimit
La funzione ulimit () controlla i limiti di processo. I limiti di processo che possono essere controllati da questa funzione includono la dimensione massima di un singolo file che può essere scritto (questo equivale all'utilizzo di setrlimit () con RLIMIT_FSIZE).
Inoltre, se si guarda la setrlimit
pagina man, viene chiamata la struttura dati sottostante che contiene le informazioni sul limite rlimit
.
estratto dalla pagina man setrlimit
getrlimit e setrlimit ottengono e impostano rispettivamente i limiti delle risorse. Ogni risorsa ha un limite soft e hard associato, come definito dalla struttura rlimit (l'argomento rlim sia per getrlimit () che setrlimit ()):
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
Facendo riferimento alla pagina man ulimit , è un comando della shell bash per controllare i limiti del sistema e una parte dei built-in bash come printf, read, source, ecc.
Facendo riferimento alla pagina getrlimits , rappresenta le API tramite C / C ++ utilizzando le chiamate di sistema per controllare i limiti del sistema. Ulteriore documentazione glibc su spiega meglio i limiti (= limiti delle risorse).
ulimit
possono essere due cose:
un'interfaccia API POSIX 7 C che è stata deprecata a favore di getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
Le applicazioni dovrebbero usare le funzioni getrlimit () o setrlimit () invece della funzione obsoleta ulimit ().
Questo non è stato il caso di una sim
risposta su POSIX 6.
Su GNU / Linux getrlimit()
e ulimit()
sono implementati con la sys_getrlimit
chiamata di sistema. Non c'è sys_ulimit
.
un'utilità CLI POSIX 7 non deprecata: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
Può essere implementato con ulimit()
o getrlimit()
.