sourCEntral - mobile manpages

pdf

GETITIMER

이름

getitimer, setitimer − interval timer의 값을 얻거나 설정한다.

사용법

#include <sys/time.h>

int getitimer(int

which, struct itimerval *value);

int setitimer(int

which, const struct itimerval *value, struct

itimerval *ovalue);

설명

시스템은 3개의 interval timer를 가진 각 프로세스를 제공한다. 모든 타이머가 작동을 멈추면, 프로세스가 시그널을 보내고 타이머는 다시 작동을 시작한다.

ITIMER_REAL

실시간의 감소율과 SIGALRM 의 만료기간을 넘겨준다.

ITIMER_VIRTUAL

프로세스가 실행되고 있을때 감소율과 SIGVTALRM 의 만료기간을 넘겨준다.

ITIMER_PROF

프로세스가 진행되고 있거나, 시스템이 프로세스를 대신해 실행할때 감소율. ITIMER_VIRTUAL, 를 결부시켜 생각하면, 이 타이머는 대개 사용자와 커널공간에 응용프로그램에 의해 보내진 프로파일 시간에 쓰인다. SIGPROF 는 만료기간을 넘겨준다.

타이머 값은 다음 구조에의해 정의된다:

struct itimerval {
struct timeval it_interval; /* next value */
struct timeval it_value; /* current value */
};
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};

Getitimer(2)ITIMER_REAL, ITIMER_VIRTUAL, 나 ITIMER_PROF 중 하나에 의해 지정된 타이머를 위해 현재 설정한 value 에 의해 지정된 구조로 채워진다. it_value 는 타이머에 남겨진 시간의 양으로 설정되거나 타이머가 작동하지 않으면 0이다. 비슷하게, it_interval 는 reset 값으로 설정된다. Setitimer(2)value 값으로 지정된 타이머를 설정한다. ovalue 가 0이 아니면, 타이머의 이전 값은 그곳에 저장된다.

시그널을 생성하는 it_value 에서 0까지 타이머 감소와 it_interval 로 재설정한다. 0으로 설정된 타이머는 멈춘다. (it_value 는 0이거나 타이머가 만표되었고 it_interval 는 0이다 )

Both tv_sectv_usec 는 모두 타이머의 지속기간 결정에 중요하다.

타이머는 시간이 요청되기 전엔 절대 만료되지 않을것이다. 그 대신 몇몇 짧은 만료기간은 시스템 타이머 해석(현재 10ms)에 의지한다. 만료기간에 시그널은 생성될 것이고, 타이머는 새설정된다. 타이머가 프로세스가 실행중인 동안 만료된다 면 시그널이 생성될때 즉시 전달될 것이다. 그렇지 않으면 시스템 로딩에 의지하는 짧은 시간에의해 상쇄될 것이다.

반환값

성공시, 0이 반환된다. 실패시, −1이 반환되고, errno 는 적절히 설정된다.

에러

EFAULT

valueovalue 가 유효한 포인터가 아니다.

EINVAL

ITIMER_REAL, ITIMER_VIRT, or ITIMER_PROF. 중의 어떤것도 아니다.

호환

SVr4, 4.4BSD (이것은 4.2BSD에서 처음 보였다).

관련 항목

gettimeofday(2), sigaction(2), signal(2).

버그

리눅스에서, 시그널의 생성과 전달은 별개이고, 각 시그널은 중요한 이벤트에 허용된다. ITIMER_REAL 가 이전 만료기간으로 부터 시그널이 전달되기 전에 만료될 것이다. 이벤트같은 초 시그널은 잃게 될것이다.

역자

ASPLINUX<man AT asp-linux DOT co DOT kr>, 2000년 7월 29일

pdf