Como alterar o tamanho da pilha usando ulimit ou por processo no Mac OS X para um programa C ou Ruby?
Parece que a maneira recomendada de definir o tamanho da pilha para um programa C ou programa Ruby (que usa a pilha C) é usandoulimit
no shell Bash. Mas
$ ulimit -s
8192
$ ulimit -s 16384
-bash: ulimit: stack size: cannot modify limit: Operation not permitted
esudo
não ajuda também. Existe uma maneira de configurá-lo para 16MB, 32MB ou 64MB? Eu pensei que deveria haver uma maneira de configurá-lo por chamada de programa, em vez de definir um parâmetro de largura do sistema também?
Agora mesmo8192
provavelmente significa 8MB, o que é muito pequeno, se comparado ao quanto um processo pode estar usando, às vezes até 2GB de RAM.
(nota atualizada: ulimit -a
pode mostrar seus valores atuais).
(atualização 2: parece mesmoulimit -s <value>
é por shell, e se você configurá-lo pela primeira vez, normalmente funciona. O problema é quando você define a segunda vez, então ele pode retornar um erro)