getrlimit (2) имеет следующее определение на страницах руководства:
RLIMIT_AS Максимальный размер виртуальной памяти процесса (адресного пространства) в байтах. Это ограничение влияет на вызовы brk (2), mmap (2) и mremap (2), которые завершаются ошибкой ENOMEM при превышении этого предела. Также автоматическое расширение стека завершится неудачно (и сгенерирует SIGSEGV, который убивает процесс, если через sigaltstack (2) не было сделано доступного альтернативного стека). Поскольку значение является длинным, на машинах с 32-битной длиной это ограничение не должно превышать 2 ГиБ, или этот ресурс не ограничен.
Что подразумевается под «автоматическим расширением стека» здесь? Стек в среде Linux / UNIX растет по мере необходимости? Если да, каков точный механизм?
ulimit -s
).