tail head cat sleep
QR code linking to this page

Man page  — GETITIMER

명칭

getitimer, setitimer – 인터벌 타이머의 값을 취득 / 설정

내용

프로그램 라이브러리

Standard C Library (libc, -lc)

서식

#include <sys/time.h>

#define ITIMER_REAL Ta       0
#define ITIMER_VIRTUAL      1
#define ITIMER_PROF Ta       2
int
getitimer(int which, struct itimerval *value);

int
setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);

해설

시스템은, 각 프로세스에 < sys/time.h > 그리고 정의된 3 개의 인터벌 타이머를 제공하고 있습니다. getitimer() 시스템 콜은 which 그리고 지정된 타이머의 현재의 값을 value 구조체에 돌려줍니다. setitimer() 시스템 콜은 타이머를 지정의 value (으)로 설정합니다 (, ovalue 하지만 nil 가 아닌 경우, 타이머의 이전의 값이 돌려주어집니다).

타이머의 값은 itimerval 구조체에 의해 정의됩니다.

struct itimerval {
        struct  timeval it_interval;    /* 타이마인타발 */
        struct  timeval it_value;       /* 현재의 값 */
};

it_value 하지만 0 이 아닌 경우, 그것은 다음에 타이머가 마감 시간이 될 때까지의 시간을 나타냅니다. it_interval 하지만 0 이 아닌 경우, 그것은 타이머가 마감 시간이 될 때 it_value (을)를 재설정하는데 사용되는 값을 지정합니다. it_value (을)를 0 으로 설정하면(자), 타이머는 it_interval 의 값에 관계없이 무효가 됩니다. it_interval (을)를 0 으로 설정하면(자), 다음의 마감 시간의 다음에 타이머는 무효가 됩니다 (, it_value 하지만 0 이 아니면 상정합니다).

시스템 클록의 정밀도 (통상은 10 밀리 세컨드입니다)보다 작은 시간의 값은 이 정밀도에 끝맺을 수 있습니다.

ITIMER_REAL 타이머는 리얼타임에 감소해 갈 것입니다. 이 타이머가 마감 시간이 되면(자) SIGALRM 시그널이 전달됩니다.

ITIMER_VIRTUAL 타이머는 프로세스 가상 시간에 감소합니다. 이 타이머가 줄어드는 것은 프로세스가 실행중의 때 뿐입니다. 마감 시간이 될 때 SIGVTALRM 시그널이 전달됩니다.

ITIMER_PROF 타이머는, 프로세스 가상 시간내 및 시스템이 프로세스를 위해서(때문에) 처리를 실시하고 있을 때의 양쪽 모두로 감소합니다. 이것은, 인터프리터가 프로그램의 실행을 통계적으로 프로파일 할 경우에 사용하도록(듯이) 설계되고 있습니다. ITIMER_PROF 타이머가 마감 시간이 될 때마다 SIGPROF 시그널이 전달됩니다. 이 시그널은 진행중의 시스템 콜에 끼어들지도 모르기 때문에, 이 타이머를 사용하고 있는 프로그램은 끼어들어진 시스템 콜을 재실행할 준비를 해 두지 않으면 안됩니다.

setitimer() 그리고 it_interval (와)과 it_value 에 허용 되는 최대초수는 100000000 입니다.

시간의 값을 조작하는 3 개의 매크로는 < sys/time.h > 그리고 정의되고 있습니다. timerclear (은)는 시간의 값을 0 으로 설정해, timerisset (은)는 시간치가 0 이 아닌지 어떤지 검사해, timercmp (은)는 2 개의 시간의 값을 비교합니다.

반환값

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

에러

getitimer() (와)과 setitimer() (은)는 다음의 경우에 실패합니다.
[EFAULT]
  value 파라미터가 무효인 주소를 지정했습니다.
[EINVAL]
  value 파라미터가, 너무 커 처리할 수 없는 시간을 지정했습니다.

관련 항목

gettimeofday(2), select(2), sigvec(2), clocks(7)

역사

getitimer() 함수는 BSD 4.2 그리고 등장했습니다.

GETITIMER (2) May 16, 1995

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.

With features like these, who needs bugs?
— Henry Spencer