Augmentation de la taille de la pile sous Linux pour les applications GCC C
Sous Linux, augmenter la taille de la pile pour une application C compilée avec GNU est différent vers macOS. OSX prend en charge l'option LD_FLAGS, contrairement à Linux.
Pour augmenter la taille de la pile d'une seule application sous Linux à l'aide de GCC, vous pouvez utiliser la fonction setrlimit comme suit :
#include <sys/resource.h> int main (int argc, char **argv) { const rlim_t kStackSize = 16 * 1024 * 1024; // min stack size = 16 MB struct rlimit rl; int result; result = getrlimit(RLIMIT_STACK, &rl); if (result == 0) { if (rl.rlim_cur < kStackSize) { rl.rlim_cur = kStackSize; result = setrlimit(RLIMIT_STACK, &rl); if (result != 0) { fprintf(stderr, "setrlimit returned result = %d\n", result); } } } // ... return 0; }
Remarque : Même avec cette méthode, évitez de déclarer de grosses variables locales directement dans main(). Au lieu de cela, ces variables doivent être définies dans des fonctions appelées une fois que la taille de la pile a été ajustée avec succès. Cela évite les débordements de pile avant que la modification de taille ne prenne effet dans main().
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!