Wie ändere ich die Stapelgröße mit ulimit oder pro Prozess unter Mac OS X für ein C- oder Ruby-Programm?

Es scheint, dass die empfohlene Methode zum Festlegen der Stapelgröße für ein C-Programm oder ein Ruby-Programm (das den C-Stapel verwendet) die Verwendung von istulimit in der Bash-Shell. Aber

$ ulimit -s
8192

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

undsudo hilft auch nicht. Gibt es eine Möglichkeit, es auf 16 MB, 32 MB oder 64 MB festzulegen? Ich dachte, es sollte eine Möglichkeit geben, es pro Programmaufruf festzulegen, anstatt auch einen systemweiten Parameter festzulegen?

Jetzt sofort8192 bedeutet wahrscheinlich 8 MB, was ziemlich klein ist, wenn man vergleicht, wie viel ein Prozess verbrauchen kann, manchmal bis zu 2 GB RAM.

(Hinweis aktualisiert: ulimit -a kann seine aktuellen Werte anzeigen).

(Update 2: es scheint tatsächlich soulimit -s <value> ist pro Shell, und wenn Sie es zum ersten Mal einstellen, funktioniert es normalerweise. Das Problem ist, wenn Sie es das zweite Mal einstellen, dann kann es einen Fehler zurückgeben)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage