pthread_getattr_default_np(3) - wariua/manpages-ko GitHub Wiki

NAME

pthread_getattr_default_np, pthread_setattr_default_np - κΈ°λ³Έ μŠ€λ ˆλ“œ 생성 속성듀을 μ–»κ±°λ‚˜ μ„€μ •ν•˜κΈ°

SYNOPSIS

#define _GNU_SOURCE             /* feature_test_macros(7) μ°Έκ³  */
#include <pthread.h>

int pthread_getattr_default_np(pthread_attr_t *attr);
int pthread_setattr_default_np(pthread_attr_t *attr);

-pthread둜 컴파일 및 링크.

DESCRIPTION

pthread_setattr_default_np() ν•¨μˆ˜λŠ” μƒˆ μŠ€λ ˆλ“œ 생성에 μ“°λŠ” κΈ°λ³Έ 속성듀, 즉 두 번째 인자λ₯Ό NULL둜 ν•΄μ„œ pthread_create(3)을 ν˜ΈμΆœν•  λ•Œ μ“°λŠ” 속성듀을 μ„€μ •ν•œλ‹€. *attr둜 μ€€ 속성듀을 μ΄μš©ν•΄ κΈ°λ³Έ 속성듀을 μ„€μ •ν•˜λ©°, *attr은 미리 μ„€μ •ν•΄ λ‘” μŠ€λ ˆλ“œ 속성 객체이닀. 제곡 속성 객체에 λŒ€ν•΄μ„œ λ‹€μŒ 사항듀에 μœ μ˜ν•˜λ‹€.

  • 객체의 속성 섀정듀이 μœ νš¨ν•΄μ•Ό ν•œλ‹€.

  • 객체에 μŠ€νƒ μ£Όμ†Œ 속성을 μ„€μ •ν•΄μ„œλŠ” μ•ˆ λœλ‹€.

  • μŠ€νƒ 크기 속성을 0으둜 μ„€μ •ν•˜λŠ” 것은 κΈ°λ³Έ μŠ€νƒ 크기λ₯Ό λ°”κΎΈμ§€ μ•ŠλŠ”λ‹€λŠ” λœ»μ΄λ‹€.

pthread_getattr_default_np() ν•¨μˆ˜λŠ” attr이 κ°€λ¦¬ν‚€λŠ” μŠ€λ ˆλ“œ 속성 객체λ₯Ό μŠ€λ ˆλ“œ 생성에 μ“°λŠ” κΈ°μ‘΄ 속성듀을 담도둝 μ„€μ •ν•œλ‹€.

ERRORS

EINVAL
(pthread_setattr_default_np()) attr의 ν•œ 속성 섀정이 μœ νš¨ν•˜μ§€ μ•Šκ±°λ‚˜, attr에 μŠ€νƒ μ£Όμ†Œ 속성이 섀정돼 μžˆλ‹€.
ENOMEM
(pthread_setattr_default_np()) λ©”λͺ¨λ¦¬ λΆ€μ‘±.

VERSIONS

glibc 버전 2.18λΆ€ν„° 이 ν•¨μˆ˜λ“€μ΄ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 attributes(7)λ₯Ό 보라.

μΈν„°νŽ˜μ΄μŠ€ 속성 κ°’
pthread_getattr_default_np(),
pthread_setattr_default_np()
μŠ€λ ˆλ“œ μ•ˆμ „μ„± MT-Safe

CONFORMING TO

이 ν•¨μˆ˜λ“€μ€ λΉ„ν‘œμ€€ GNU ν™•μž₯이닀. κ·Έλž˜μ„œ 이름 뒀에 "_np"(nonportable: 이식성 μ—†μŒ)κ°€ λΆ™μ–΄ μžˆλ‹€.

EXAMPLE

μ•„λž˜ ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” pthread_getattr_default_np()λ₯Ό μ‚¬μš©ν•΄ κΈ°λ³Έ μŠ€λ ˆλ“œ 생성 속성듀을 κ°€μ Έμ˜¨ λ‹€μŒ λ°˜ν™˜λ°›μ€ μŠ€λ ˆλ“œ 속성 객체의 μ—¬λŸ¬ 섀정듀을 ν‘œμ‹œν•œλ‹€. ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ‹œ λ‹€μŒ 좜λ ₯을 보게 λœλ‹€.

$ ./a.out
Stack size:         8388608
Guard size:         4096
Scheduling policy:  SCHED_OTHER
Schduling priority: 0
Detach state:       JOINABLE
Inherit scheduler:  INHERIT

ν”„λ‘œκ·Έλž¨ μ†ŒμŠ€

#define _GNU_SOURCE
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#define errExitEN(en, msg) \
                        do { errno = en; perror(msg); \
                             exit(EXIT_FAILURE); } while (0)

static void
display_pthread_attr(pthread_attr_t *attr)
{
    int s;
    size_t stacksize;
    size_t guardsize;
    int policy;
    struct sched_param schedparam;
    int detachstate;
    int inheritsched;

    s = pthread_attr_getstacksize(attr, &stacksize);
    if (s != 0)
        errExitEN(s, "pthread_attr_getstacksize");
    printf("Stack size:          %zd\n", stacksize);

    s = pthread_attr_getguardsize(attr, &guardsize);
    if (s != 0)
        errExitEN(s, "pthread_attr_getguardsize");
    printf("Guard size:          %zd\n", guardsize);

    s = pthread_attr_getschedpolicy(attr, &policy);
    if (s != 0)
        errExitEN(s, "pthread_attr_getschedpolicy");
    printf("Scheduling policy:   %d\n",
            (policy == SCHED_FIFO) ? "SCHED_FIFO" :
            (policy == SCHED_RR) ? "SCHED_RR" :
            (policy == SCHED_OTHER) ? "SCHED_OTHER" : "[unknown]");

    s = pthread_attr_getschedparam(attr, &schedparam);
    if (s != 0)
        errExitEN(s, "pthread_attr_getschedparam");
    printf("Scheduling priority: %d\n", schedparam.sched_priority);

    s = pthread_attr_getdetachstate(attr, &detachstate);
    if (s != 0)
        errExitEN(s, "pthread_attr_getdetachstate");
    printf("Detach state:        %s\n",
            (detachstate == PTHREAD_CREATE_DETACHED) ? "DETACHED" :
            (detachstate == PTHREAD_CREATE_JOINABLE) ? "JOINABLE" :
            "???");

    s = pthread_attr_getinheritsched(attr, &inheritsched);
    if (s != 0)
        errExitEN(s, "pthread_attr_getinheritsched");
    printf("Inherit scheduler:   %s\n",
            (inheritsched == PTHREAD_INHERIT_SCHED) ? "INHERIT" :
            (inheritsched == PTHREAD_EXPLICIT_SCHED) ? "EXPLICIT" :
            "???");
}

int
main(int argc, char *argv[])
{
    int s;
    pthread_attr_t attr;

    s = pthread_getattr_default_np(&attr);
    if (s != 0)
        errExitEN(s, "pthread_getattr_default_np");

    display_pthread_attr(&attr);

    exit(EXIT_SUCCESS);
}

SEE ALSO

pthread_attr_getaffinity_np(3), pthread_attr_getdetachstate(3), pthread_attr_getguardsize(3), pthread_attr_getinheritsched(3), pthread_attr_getschedparam(3), pthread_attr_getschedpolicy(3), pthread_attr_getscope(3), pthread_attr_getstack(3), pthread_attr_getstackaddr(3), pthread_attr_getstacksize(3), pthread_attr_init(3), pthread_create(3), pthreads(7)


2019-03-06

⚠️ **GitHub.com Fallback** ⚠️