Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C에서 스레드 속성의 스택 크기 가져오기 및 설정

<시간/>

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