nanosleep(2)

#include <time.h>

int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);

nanosleep()은 설정된 rqtp 시간동안 실행을 대기하는 함수입니다.

 

이 함수는 nanosecond(10억분의 1초) 단위의 대기시간을 설정할 수 있습니다.

물론 시스템에서 10억분의 1초를 아직 지원하지 않으므로 정확하게 10억분의 1초 단위로 대기하지는 않습니다.

만약 signal등으로 중단되면 nanosleep()실행중 남은 시간은 rmtp에 저장됩니다.

 

struct timespec의 구조는 다음과 같습니다.

struct timespec
{
    time_t  tv_sec;         /* seconds */
    long    tv_nsec;        /* nanoseconds */
};

 

 

파라미터

rqtp
    - 수행중 대기할 시간을 설정합니다. 정상적으로 수행되면 이 시간동안 대기합니다.(Input)

struct timespec의 구조는 다음과 같습니다.
struct timespec
{
    time_t  tv_sec;         /* seconds */
    long    tv_nsec;        /* nanoseconds */
};
rmtp
    - nanosleep()이 수행중 오류로 인하여 대기하는 작업이 중단되면 남은 시간을 저장합니다. (output)

struct timespec의 구조는 다음과 같습니다.
struct timespec
{
    time_t  tv_sec;         /* seconds */
    long    tv_nsec;        /* nanoseconds */
};

 

RETURN

0
    - 정상적으로 대기하였습니다.

-1
    - 오류가 발생하였으며, 상세한 오류 내용은 errno 전역변수에 설정됩니다.

 EINTR : signal이 발생하여 대기가 중단되었습니다. sleep중에 남은 시간은 rmtp에 저장됩니다.
 EINVAL : tv_nsec값이 0 ~ 999,999,999가 아니거나, tv_sec이 음수입니다.

 


 

see also : 시간(Time, Date) 관련 Library

 

 

 

블로그 이미지

사용자 자연&사람

행복한 개발자 programmer since 1995.

Tag , , ,

댓글을 달아 주세요