Jak zmienić rozmiar stosu za pomocą ulimit lub na proces w systemie Mac OS X dla programu C lub Ruby?
Wydaje się, że zalecanym sposobem ustawiania rozmiaru stosu dla programu C lub programu Ruby (który używa stosu C) jest użycieulimit
w powłoce Bash. Ale
$ ulimit -s
8192
$ ulimit -s 16384
-bash: ulimit: stack size: cannot modify limit: Operation not permitted
isudo
też nie pomaga. Czy istnieje sposób na ustawienie 16 MB, 32 MB lub 64 MB? Myślałem, że powinien istnieć sposób na ustawienie go na wywołanie programu, a nie na ustawienie całego systemu?
Teraz8192
prawdopodobnie oznacza 8 MB, który jest dość mały, jeśli porówna się go z ilością używanego procesu, czasem nawet 2 GB pamięci RAM.
(zaktualizowana notatka: ulimit -a
może pokazać swoje bieżące wartości).
(aktualizacja 2: tak naprawdę wydaje sięulimit -s <value>
jest na powłokę i jeśli ustawisz ją po raz pierwszy, zwykle działa. Problem polega na tym, że ustawiasz go po raz drugi, a następnie może zwrócić błąd)