有時候在Linux寫C++程序處理大量的數據,程序內部須要分配很大的數組來存放一些數據,但有時候分配的數組太大的話運行時會出現段錯誤。這種狀況多是分配的數組大小超過了Linux系統的默認棧空間的大小了,致使棧空間不夠分配,出現錯誤。linux
(1)查看linux默認棧空間的大小
經過命令 ulimit -s 查看linux的默認棧空間大小,默認狀況下爲8192 KB 即8MB。數組
(2)臨時改變棧空間的大小
經過命令 ulimit -s 設置大小值臨時改變棧空間大小。例如:ulimit -s 102400,即修改成100MB。spa
(3)永久修改棧空間大大小。有兩種方法:
方法一:能夠在/etc/rc.local 內加入 ulimit -s 102400 則能夠開機就設置棧空間大小,任何用戶啓動的時候都會調用。
方法二:修改配置文件/etc/security/limits.confit