首頁 > 後端開發 > C++ > 如何使用 GCC 更改 Linux 中 C 應用程式的堆疊大小?

如何使用 GCC 更改 Linux 中 C 應用程式的堆疊大小?

Barbara Streisand
發布: 2024-12-22 19:22:13
原創
337 人瀏覽過

How Can I Change the Stack Size of a C   Application in Linux Using GCC?

使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板