使用GCC 更改Linux 中C 應用程式的堆疊大小
在Linux 中,與macOS 不同,LD_FLAGSw選項為GNU 編譯器不識別。若要調整單一 C 應用程式的堆疊大小,可以透過程式設計方式使用 setrlimit 函數。
#include <sys/resource.h> int main() { const rlim_t kStackSize = 16 * 1024 * 1024; // 16 MB struct rlimit rl; int result; // Get current stack size limits result = getrlimit(RLIMIT_STACK, &rl); if (result == 0) { // If current stack size is less than desired, adjust it if (rl.rlim_cur < kStackSize) { rl.rlim_cur = kStackSize; result = setrlimit(RLIMIT_STACK, &rl); if (result != 0) { // Error handling } } } // Your code... return 0; }
實作此解決方案時,至關重要的是將大型局部變數宣告放置在從 main() 呼叫的函數中,而不是比直接在 main() 中。否則,在增加堆疊大小之前可能會發生堆疊溢位。
以上是如何使用 GCC 更改 Linux 中 C 應用程式的堆疊大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!