Кажется, что рекомендуемый способ установить размер стека для программы на языке 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
, вероятно, означает 8MB, что довольно мало, если сравнить его с тем, сколько может быть использовано процесс, иногда до 2 ГБ ОЗУ.
( обновленное примечание: ulimit -a
может показывать текущие значения).
( update 2: на самом деле это похоже на ulimit -s <value>
на оболочку, и если вы установите его в первый раз, это обычно работает. Проблема заключается в том, что вы устанавливаете его во второй раз, то он может вернуть ошибку)