Відповіді:
Я думаю, що плутанина походить від того, що основна система виклику, що виконує обгортання, називається setrlimit .
уривок зі сторінки ulimit man
Функція ulimit () повинна контролювати межі процесу. Обмеження процесу, які можна керувати за допомогою цієї функції, включає максимальний розмір одного файлу, який можна записати (це еквівалентно використанню setrlimit () з RLIMIT_FSIZE).
Крім того, якщо ви подивитеся на сторінку setrlimit
чоловіка, називається базова структура даних, яка містить інформацію про обмеження rlimit
.
уривок зі сторінки setrlimit man
getrlimit і setrlimit отримати та встановити ліміти ресурсів відповідно. Кожен ресурс має пов'язаний м'який і жорсткий межа, визначений структурою rlimit (аргумент rlim як getrlimit (), так і setrlimit ()):
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
Посилаючись на сторінку ulimit man , це команда bash shell для управління межами системи та частини bash-вбудованих файлів, таких як printf, read, source тощо.
Посилаючись на сторінку getrlimits , вона представляє API через C / C ++, використовуючи системні виклики для управління системними рамками. Додаткова документація на glibc про пояснення rlimits (= обмеження ресурсів) краще.
ulimit
може бути дві речі:
інтерфейс API POSIX 7 C, який застаріло на користь getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
Програми повинні використовувати функції getrlimit () або setrlimit () замість застарілої функції ulimit ().
Це не було випадку, коли sim
відповідали на POSIX 6.
На GNU / Linux, getrlimit()
і ulimit()
реалізуються із sys_getrlimit
системним викликом. Немає sys_ulimit
.
непридатна утиліта POSIX 7 CLI: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
Він може бути реалізований з будь-яким ulimit()
або getrlimit()
.