Функция ulimit () должна контролировать пределы процесса. Пределы процесса, которые могут контролироваться этой функцией, включают в себя максимальный размер отдельного файла, который можно записать (это эквивалентно использованию setrlimit () с RLIMIT_FSIZE).
Кроме того, если вы посмотрите на setrlimitсправочную страницу, вызывается базовая структура данных, которая содержит информацию о лимитах rlimit.
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 руководства , это команда оболочки bash, которая контролирует ограничения системы и часть встроенных команд bash, таких как printf, read, source и т. Д.
Ссылаясь на страницу getrlimits , она представляет API через C / C ++, используя системные вызовы для управления системными ограничениями. Дополнительная документация по glibc лучше объясняет ограничения (= ограничения ресурсов).
Ответы:
Я думаю, что путаница возникает из-за того, что основной системный вызов, который обертывает ulimit, называется setrlimit .
выдержка из справочной страницы ulimit
Кроме того, если вы посмотрите на
setrlimit
справочную страницу, вызывается базовая структура данных, которая содержит информацию о лимитахrlimit
.выдержка из страницы руководства setrlimit
Ссылки
источник
Ссылаясь на справочную страницу ulimit руководства , это команда оболочки bash, которая контролирует ограничения системы и часть встроенных команд bash, таких как printf, read, source и т. Д.
Ссылаясь на страницу getrlimits , она представляет API через C / C ++, используя системные вызовы для управления системными ограничениями. Дополнительная документация по glibc лучше объясняет ограничения (= ограничения ресурсов).
источник
ulimit
может быть две вещи:интерфейс API POSIX 7 C, который устарел в пользу
getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.htmlЭто был не тот случай, когда
sim
ответили на POSIX 6.На GNU / Linux
getrlimit()
иulimit()
реализованы с помощьюsys_getrlimit
системного вызова. Существует нетsys_ulimit
.непревзойденная утилита CLI POSIX 7: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
Он может быть реализован либо
ulimit()
илиgetrlimit()
.источник