Heim > Backend-Entwicklung > C++ > Wie kann ich die Stapelgröße einer C-Anwendung unter Linux mithilfe von GCC ändern?

Wie kann ich die Stapelgröße einer C-Anwendung unter Linux mithilfe von GCC ändern?

Barbara Streisand
Freigeben: 2024-12-22 19:22:13
Original
326 Leute haben es durchsucht

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

Ändern der Stapelgröße für C-Anwendungen unter Linux mit GCC

Unter Linux gilt im Gegensatz zu macOS die Option LD_FLAGS=-Wl,-stack_size Wird vom GNU-Compiler nicht erkannt. Um die Stapelgröße für eine einzelne C-Anwendung anzupassen, kann die Funktion setrlimit programmgesteuert verwendet werden.

#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;
}
Nach dem Login kopieren

Bei der Implementierung dieser Lösung ist es wichtig, große lokale Variablendeklarationen eher in Funktionen zu platzieren, die von main() aufgerufen werden als direkt in main(). Andernfalls kann es zu einem Stapelüberlauf kommen, bevor die Stapelgröße erhöht werden kann.

Das obige ist der detaillierte Inhalt vonWie kann ich die Stapelgröße einer C-Anwendung unter Linux mithilfe von GCC ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage