PTHREAD_RWLOCK_INIT(3)

명칭
pthread_rwlock_init - 읽기 / 기록 락의 초기화

프로그램 라이브러리
libc_r

서식
<pthread.h> int pthread_rwlock_init(pthread_rwlock_t *lock, const pthread_rwlockattr_t *attr)

해설
pthread_rwlock_init() 함수는, attr 그리고 지정된 속성으로, 읽기 / 기록 락을 초기화하기 위해서 사용됩니다. attr 하지만 NULL 의 경우에는, 디폴트의 읽기 / 기록 락 속성이 사용됩니다.

이미 초기화되고 있는 락에서의 pthread_rwlock_init() 의 호출의 결과는, 미정도리입니다.

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

관련 항목
pthread_rwlock_destroy(3), pthread_rwlockattr_init(3), pthread_rwlockattr_setpshared(3)

표준
pthread_rwlock_init() 함수는, susv2 에 적합하고 있을 것입니다.

에러
pthread_rwlock_init() 함수는, 이하의 경우에 실패합니다.

[EAGAIN]
    락을 초기화하기 위해서 필요한 (메모리 이외의) 리소스가, 시스템에 부족합니다.

[ENOMEM]
    락을 초기화하기 위한 충분한 메모리가 없습니다.

[EPERM]
    호출측이, 그 조작을 실행하기 위한 충분한 권리를 가지고 있지 않습니다.

pthread_rwlock_init() 함수는, 이하의 경우에 실패하는 일이 있습니다.

[EBUSY]
    lock 에 의해 참조되고 있는 오브젝트로, 이전에 초기화되고 있지만 아직 파괴되어 있지 않은 읽기 / 기록 락을 재초기화하려고 하고 있는 것을, 시스템이 검출했습니다.

[EINVAL]
    attr 에 의해 지정된 값이 무효입니다.

역사
pthread_rwlock_init() 함수는, FreeBSD 3.0 그리고 처음 등장했습니다.

버그
PTHREAD_PROCESS_SHARED 속성은, 서포트되고 있지 않습니다.