NANOSLEEP(2)

명칭
nanosleep - 나노초단위의 간격으로 프로세스 실행을 중단한다

프로그램 라이브러리
libc

서식
<time.h> int nanosleep(const struct timespec *rqtp, struct timespec *rmtp)

해설
nanosleep() 에 의해 프로세스는 지정의 시간만 휴면 상태가 됩니다. 시그널에 의한다 세치기시의 SA_RESTART 값에 무관계하게, 마스크되어 있지 않은 시그널이 있으면(자) 프로세스의 휴면 상태는 빨리 종료합니다.

반환값
요구된 시간이 경과했기 때문에 nanosleep() 함수가 돌아왔을 경우, 돌려주어지는 값은 0 이 됩니다.

시그널이 전달되었기 때문에 nanosleep() 함수로부터 돌아왔을 경우에 돌려주어지는 값은 -1 이 되어, 세치기를 나타내기 위해서(때문에) 글로벌 변수 errno 하지만 설정됩니다. rmtp 하지만 NULL 가 아닌 경우, 그것이 참조한다 timespec 구조체는 비휴면 시간에 갱신됩니다 (요구 시간부터, 실제로 휴면 상태에 있던 시간을 감산한 것입니다).

에러
nanosleep() (은)는, 다음의 경우에 실패합니다:

[EFAULT]
    rqtp 또는 rmtp 의 어느 쪽인지가, 프로세스에 할당할 수 있었던 address 공간의 범위외의 메모리를 가리키고 있습니다.

[EINTR]
    nanosleep() (은)는 시그널의 전달에 의해 끼어들어졌습니다.

[EINVAL]
    rqtp 에 0 미만인가, 10 억 나노초이상의 값을 지정했습니다.

[ENOSYS]
    nanosleep() (은)는 이 시스템에서는 서포트되고 있지 않습니다.

관련 항목
sigsuspend(2), sleep(3)

표준
nanosleep() 함수는 p1003.1b-93 에 준거하고 있습니다.