PTHREAD_CREATE(3)

명칭
pthread_create - 새로운 thread의 작성

프로그램 라이브러리
libc_r

서식
<pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)

해설
pthread_create() 함수는, 프로세스내에 attr 에 의해 지정된 속성을 가지는 새로운 thread를 작성하기 위해서 사용됩니다. attr 하지만 NULL 인 경우에는, 디폴트의 속성이 사용됩니다. attr 에 의해 지정된 속성이 나중에 갱신되었을 경우에는, thread의 속성은 변화하지 않습니다. 문제 없게 완료하면(자), pthread_create() 하 thread 에 의해 지정된 장소에 작성된 thread의 ID 를 격납합니다.

thread는, arg (을)를 유일한 인수로서 start_routine (을)를 실행하는 것으로 작성됩니다. start_routine 하지만 돌아왔을 경우에는, start_routine 의 반환값을 종료 스테이터스로서 사용해, 암묵중에 pthread_exit() (을)를 호출한 것 같은 효과가 있습니다. main() (을)를 최초로에 실행한 thread는, 이것과는 다른 것에 주의해 주세요. 그 thread가 main() (으)로부터 돌아왔을 때에는, main() 의 반환값을 종료 스테이터스로서 사용해, 암묵중에 exit() (을)를 호출한 것 같은 효과가 있습니다.

새로운 thread의 시그널 상태는, 이하와 같이 초기화됩니다.

•   시그널 마스크는 작성한 thread로부터 계승됩니다.

•   새로운 thread용으로 보류하고 있는 시그널세트는 하늘입니다.

반환값
문제가 없는 경우는, pthread_create() 함수는 0 을 돌려줍니다. 문제가 있는 경우는, 그 에러를 나타내기 위해서(때문에) 에러 번호가 돌려주어집니다.

에러
pthread_create() (은)는 이하의 경우에 실패합니다.

[EAGAIN]
    다른 thread를 작성하기 위해서 필요한 리소스가 시스템에 부족합니다. 또는, 1 개의 프로세스내의 총thread수에 대한 시스템의 제한 [PTHREAD_THREADS_MAX] 를 초과했습니다.

[EINVAL]
    attr 에 의해 지정된 값이, 유효하지는 않습니다.

관련 항목
fork(2), pthread_cleanup_pop(3), pthread_cleanup_push(3), pthread_exit(3), pthread_join(3)

표준
pthread_create() 하 p1003.1-96 에 적합하고 있습니다.