이 름
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 [AT] asp-linux.kr>, 2000년 7월 29일