Как изменить размер стека, используя ulimit или на процесс в Mac OS X для программы на C или Ruby?

Кажется, что рекомендуемый способ установить размер стека для программы C или Ruby (которая использует стек C), это с помощьюulimit в оболочке Bash. Но

$ ulimit -s
8192

$ ulimit -s 16384
-bash: ulimit: stack size: cannot modify limit: Operation not permitted

а такжеsudo тоже не помогает Есть ли способ установить его на 16 МБ, 32 МБ или 64 МБ? Я думал, что должен быть способ установить его для каждого вызова программы вместо установки общесистемного параметра?

Прямо сейчас8192 вероятно, означает 8 МБ, что довольно мало, если сравнивать с тем, сколько процесс может использовать, иногда до 2 ГБ ОЗУ.

(обновленная заметка: ulimit -a может показать его текущие значения).

(обновление 2: это на самом деле кажетсяulimit -s <value> для каждой оболочки, и что, если вы установите его в первый раз, он обычно работает. Проблема в том, что если вы установите его во второй раз, то он может вернуть ошибку)

Ответы на вопрос(4)

Ваш ответ на вопрос