什么是Linux堆栈?

jar*_*ine 6 linux linux-kernel

我最近遇到了"linux stack"和"linux stack size"的错误.我遇到了一个指导我尝试的博客

ulimit -a
Run Code Online (Sandbox Code Playgroud)

看看我的盒子的限制是什么,它被设置为8192kb默认值.

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

nyc*_*nik 10

简短的回答是:

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

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

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

ulimit -s bytes

顺便说一句,什么是StackOverflowError?