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 ?
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; }
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!