pthread_create

명칭
     pthread_create — 새로운 thread의 작성

프로그램 라이브러리
     Reentrant C Library (libc_r, -lc_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() 하 ISO/IEC 9945-1:1996 (“POSIX.1”) 에 적합하고 있습니다.