ulimit & rlimit в Linux, это одно и то же?


Ответы:


12

Я думаю, что путаница возникает из-за того, что основной системный вызов, который обертывает ulimit, называется setrlimit .

выдержка из справочной страницы ulimit

Функция ulimit () должна контролировать пределы процесса. Пределы процесса, которые могут контролироваться этой функцией, включают в себя максимальный размер отдельного файла, который можно записать (это эквивалентно использованию setrlimit () с RLIMIT_FSIZE).

Кроме того, если вы посмотрите на setrlimitсправочную страницу, вызывается базовая структура данных, которая содержит информацию о лимитах rlimit.

выдержка из страницы руководства setrlimit

getrlimit и setrlimit получают и устанавливают лимиты ресурсов соответственно. Каждый ресурс имеет связанный мягкий и жесткий предел, как определено структурой rlimit (аргумент rlim для getrlimit () и setrlimit ()):

struct rlimit {
    rlim_t rlim_cur;   /* Soft limit */
    rlim_t rlim_max;   /* Hard limit (ceiling 
                          for rlim_cur) */
};

Ссылки


2

Ссылаясь на справочную страницу ulimit руководства , это команда оболочки bash, которая контролирует ограничения системы и часть встроенных команд bash, таких как printf, read, source и т. Д.

Ссылаясь на страницу getrlimits , она представляет API через C / C ++, используя системные вызовы для управления системными ограничениями. Дополнительная документация по glibc лучше объясняет ограничения (= ограничения ресурсов).


0

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.

  • непревзойденная утилита CLI POSIX 7: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html

    Он может быть реализован либо ulimit()или getrlimit().

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.