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