리눅스에서 어떤 프로그램을 컴파일하다가 리눅스의 스택 사이즈가 8MB로 고정되어 있어
서 문제가 될 수 있다는 글을 읽게 되었습니다. 그래서 멀티어레이 변수를 할당하는데서 se
gment fault가 있을 수 있다고 되어 있습니다. 이 문제를 해결하기 위해서는 .bashrc에 limit stack
size unlimited 라는 줄을 넣으면 된다고 되어 있더군요. 문제는 limit라는 명령어가 없다고 나
오기 때문에 이 명령이 효과가 없다는 것입니다. 리눅스에서 사용하는 스택의 크기를 늘
리가 위해서는 어떻게 해야 할까요? 고수님들의 도움을 부탁드립니다.--내가 혼자의 힘으
로 할 수 있는 일이 도대체 이 세상에 얼마나 있단 말인가!!!
리눅스 스택 크기는 셸의 ulimit 값으로 정해집니다. limit 은 csh 계열 명령이라 bash 에서는 없다고 나옵니다. bash 에서는 ulimit -s unlimited 를 실행하거나 ~/.bashrc 에 같은 줄을 넣으면 됩니다. 큰 배열은 스택 대신 malloc 으로 힙에 잡는 것도 근본적인 방법입니다.