C에서 스레드 속성의 스택 크기를 가져오고 설정하기 위해 다음 스레드 속성을 사용합니다.
pthread_attr_getstacksize()
스레드 스택 크기를 가져오는 데 사용합니다. stacksize 속성은 스레드 스택에 할당된 최소 스택 크기를 제공합니다. 성공적인 실행의 경우 0을 제공하고 그렇지 않으면 값을 제공합니다.
두 개의 인수가 필요합니다 -
pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize)
- pthread 속성의 첫 번째 항목입니다.
- 두 번째 속성은 스레드 속성의 크기를 지정하기 위한 것입니다.
pthread_attr_setstacksize()
새 스레드 스택 크기를 설정하는 데 사용됩니다. stacksize 속성은 스레드 스택에 할당된 최소 스택 크기를 제공합니다. 성공적으로 실행되면 0을 제공하고 그렇지 않으면 값을 제공합니다.
두 개의 인수가 필요합니다 -
pthread_attr_setstacksize(pthread_attr_t *attr, size_t *stacksize)
- pthread 속성의 첫 번째 항목입니다.
- 두 번째 항목은 새 스택의 크기를 바이트 단위로 제공합니다.
알고리즘
Begin Declare stack size and declare pthread attribute a. Gets the current stacksize by pthread_attr_getstacksize() and print it. Set the new stack size by pthread_attr_setstacksize() and get the stack size pthread_attr_getstacksize() and print it. End
예시 코드
#include <stdio.h> #include <stdlib.h> #include <pthread.h> int main() { size_t stacksize; pthread_attr_t a; pthread_attr_getstacksize(&a, &stacksize); printf("Current stack size = %d\n", stacksize); pthread_attr_setstacksize(&a, 67626); pthread_attr_getstacksize(&a, &stacksize); printf("New stack size= %d\n", stacksize); return 0; }
출력
Current stack size = 50 New stack size= 67626