GCC를 사용하여 Linux에서 C 애플리케이션의 스택 크기 변경
Linux에서는 macOS와 달리 LD_FLAGS=-Wl,-stack_size 옵션은 다음과 같습니다. GNU 컴파일러에서 인식되지 않습니다. 단일 C 애플리케이션의 스택 크기를 조정하려면 setrlimit 함수를 프로그래밍 방식으로 활용할 수 있습니다.
#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; }
이 솔루션을 구현할 때 main()에서 호출되는 함수 내에 큰 지역 변수 선언을 배치하는 것이 중요합니다. main()에서 직접하는 것보다. 그렇지 않으면 스택 크기를 늘리기 전에 스택 오버플로가 발생할 수 있습니다.
위 내용은 GCC를 사용하여 Linux에서 C 애플리케이션의 스택 크기를 어떻게 변경할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!