Erhöhen der Stapelgröße unter Linux für GCC-C-Anwendungen
Unter Linux ist das Erhöhen der Stapelgröße für eine mit GNU kompilierte C-Anwendung anders zu macOS. OSX unterstützt die LD_FLAGS-Option, Linux hingegen nicht.
Um die Stapelgröße für eine einzelne Anwendung in Linux mithilfe von GCC zu erhöhen, können Sie die Funktion setrlimit wie folgt verwenden:
#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; }
Hinweis: Vermeiden Sie auch bei dieser Methode die direkte Deklaration großer lokaler Variablen in main(). Stattdessen sollten solche Variablen in Funktionen definiert werden, die nach erfolgreicher Anpassung der Stack-Größe aufgerufen werden. Dies verhindert Stapelüberläufe, bevor die Größenänderung in main() wirksam wird.
Das obige ist der detaillierte Inhalt vonWie kann die Stapelgröße für GCC-C-Anwendungen unter Linux erhöht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!