什么是Linux堆栈?

时间:2012-01-18 04:40:31

标签: linux linux-kernel

我最近遇到了“linux stack”和“linux stack size”的错误。我遇到了一个博客,指示我尝试

ulimit -a

查看我的框的限制是多少,并将其设置为8192kb,这似乎是默认值。

什么是“linux堆栈”?它是如何工作的,它存储了什么,它做了什么?

1 个答案:

答案 0 :(得分:10)

简短的回答是:

当linux盒子上的程序运行时,它们会在程序运行时定期添加和删除the stack中的数据。堆栈大小,指的是堆栈内存中分配的空间大小。如果增加堆栈大小,则允许程序增加可以调用的例程数。每次调用函数时,都可以将数据添加到堆栈中(堆叠在最后一个例程数据的顶部。)

除非程序非常复杂,或者为特殊目的而设计,否则堆栈大小通常为8192kb。某些程序(如图形处理程序)要求您增加堆栈的大小才能运行。因为他们可能会在堆栈中存储大量数据。

随意增加这些应用程序的堆栈大小,这不是问题。为此,请使用

ulimit -s bytes

BTW,What is a StackOverflowError?