GETITIMER
Section: Linux Programmer's Manual
(2)
Updated: 5 August 1993
Index
Return to Main Contents
이름
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_sec
와
tv_usec
는 모두 타이머의 지속기간 결정에 중요하다.
타이머는 시간이 요청되기 전엔 절대 만료되지 않을것이다. 그 대신 몇몇 짧은
만료기간은 시스템 타이머 해석(현재 10ms)에 의지한다. 만료기간에 시그널은
생성될 것이고, 타이머는 새설정된다. 타이머가 프로세스가 실행중인 동안 만료된다
면 시그널이 생성될때 즉시 전달될 것이다. 그렇지 않으면 시스템 로딩에 의지하는
짧은 시간에의해 상쇄될 것이다.
반환값
성공시, 0이 반환된다. 실패시, -1이 반환되고,
errno
는 적절히 설정된다.
에러
- EFAULT
-
value
나
ovalue
가 유효한 포인터가 아니다.
- EINVAL
-
ITIMER_REAL,
ITIMER_VIRT,
or
ITIMER_PROF.
중의 어떤것도 아니다.
호환
SVr4, 4.4BSD (이것은 4.2BSD에서 처음 보였다).
관련 항목
gettimeofday(2),
sigaction(2),
signal(2).
버그
리눅스에서, 시그널의 생성과 전달은 별개이고, 각 시그널은 중요한 이벤트에 허용된다.
ITIMER_REAL
가 이전 만료기간으로 부터 시그널이 전달되기 전에 만료될 것이다.
이벤트같은 초 시그널은 잃게 될것이다.
역자
ASPLINUX<man@asp-linux.co.kr>, 2000년 7월 29일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- 관련 항목
-
- 버그
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:07:01 GMT, March 25, 2004