Antworten:
Ich denke, die Verwirrung rührt von der Tatsache her, dass der zugrunde liegende Systemaufruf, den ulimit umschließt , setrlimit heißt .
Auszug aus der Manpage ulimit
Die ulimit () -Funktion soll Prozessgrenzen steuern. Zu den Prozessgrenzen, die mit dieser Funktion gesteuert werden können, gehört die maximale Größe einer einzelnen Datei, die geschrieben werden kann (dies entspricht der Verwendung von setrlimit () mit RLIMIT_FSIZE).
Wenn Sie sich außerdem die setrlimit
Manpage ansehen, wird die zugrunde liegende Datenstruktur aufgerufen, die die Grenzwertinformationen enthält rlimit
.
Auszug aus der Manpage von setrlimit
getrlimit und setrlimit erhalten bzw. setzen Ressourcenlimits. Jeder Ressource ist eine weiche und eine harte Grenze zugeordnet, wie durch die rlimit-Struktur definiert (das rlim-Argument für getrlimit () und setrlimit ()):
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
In Bezug auf die ulimit-Manpage handelt es sich um einen Bash-Shell-Befehl zur Steuerung der Einschränkungen des Systems und eines Teils von Bash-Builtins wie printf, read, source usw.
Auf die getrlimits-Seite verweisend , stellt sie die APIs über C / C ++ dar, wobei Systemaufrufe verwendet werden, um die Systemlimits zu steuern. Zusätzliche Dokumentation zu glibc erklärt rlimits (= resource limits) besser.
ulimit
kann zwei Dinge sein:
eine Schnittstelle POSIX 7 C - API , die zu Gunsten veraltet wurde getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
Anwendungen sollten die Funktionen getrlimit () oder setrlimit () anstelle der veralteten Funktion ulimit () verwenden.
Dies war bei der sim
Beantwortung unter POSIX 6 nicht der Fall .
Unter GNU / Linux getrlimit()
und ulimit()
werden mit dem sys_getrlimit
Systemaufruf implementiert . Es gibt keine sys_ulimit
.
ein nicht veraltetes POSIX 7-CLI-Dienstprogramm: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
Es kann entweder mit ulimit()
oder implementiert werden getrlimit()
.