Maison > développement back-end > C++ > Comment puis-je modifier la taille de la pile d'une application C sous Linux à l'aide de GCC ?

Comment puis-je modifier la taille de la pile d'une application C sous Linux à l'aide de GCC ?

Barbara Streisand
Libérer: 2024-12-22 19:22:13
original
376 Les gens l'ont consulté

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

Modification de la taille de la pile pour les applications C sous Linux avec GCC

Sous Linux, contrairement à macOS, l'option LD_FLAGS=-Wl,-stack_size est non reconnu par le compilateur GNU. Pour ajuster la taille de la pile pour une seule application C, la fonction setrlimit peut être utilisée par programme.

#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;
}
Copier après la connexion

Lors de la mise en œuvre de cette solution, il est crucial de placer de grandes déclarations de variables locales dans les fonctions appelées depuis main() plutôt que que directement dans main(). Sinon, un débordement de pile peut se produire avant que la taille de la pile puisse être augmentée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal