이제 시스템은 많은 프로그램이 더 이상 알람 호출을 사용하지 않지만, 타이머를 설정하는 setitimer의 사용, 타이머 상태를 얻기 위해 getitimer를 사용, getitimer() 및 setitimer() 함수는 실패 할 수 있습니다 : int getitimer (int, 구조체 itimerval *curr_value); int setitimer (int, 구성 구조체 itimerval *new_value, 구조체 itimerval *old_value); 함수 getitimer()는 (ITIMER_REAL, ITIMER_VIRTUAL 또는 ITIMER_PROF 중 하나)에 표시된 타이머의 현재 설정으로 값으로 표시된 구조를 채웁니다. 요소 it_value 타이머에 남아 있는 시간 의 양, 또는 타이머를 사용 하지 않도록 설정 하는 경우 0으로 설정 됩니다. 마찬가지로 it_interval은 재설정 값으로 설정됩니다. 함수 setitimer()는 표시된 타이머를 값값으로 설정합니다. ovalue가 0이 아닌 경우 타이머의 이전 값이 저장됩니다. getitimer, setitimer – 간격 타이머의 값 또는 설정 값 get igetitimer() 함수는 값으로 가리키는 구조로 지정된 타이머의 현재 값을 저장합니다. setitimer() 함수는 값으로 가리키는 구조에 지정된 값으로 지정된 타이머를 설정하고 ovalue가 null 포인터가 아닌 경우 ovalue가 가리키는 구조에 타이머의 이전 값을 저장합니다. 두 번째 방법으로: getitimer를 사용 하 여 남은 시간을 얻기 위해 시계를 설정 하지 경우 값이 NULL 포인터 인 경우 setitimer ovalue에 이전 타이머 값을 저장 (이 비 NULL 인 경우), getitimer 처럼, 하지만 그렇지 않으면 아무것도 하지 않습니다. POSIX.1-2001, SVr4, 4.4BSD (이 호출은 4.2BSD에 처음 등장). POSIX.1-2008 마크 getitimer() 및 setitimer() 이상 사용되지 않음, 대신 POSIX 타이머 API(timer_gettime(2), timer_settime(2) 등을 사용하는 것이 좋습니다. 마이크로초 해상도로 시간을 지정할 수 있지만 세분성은 타이머 인터럽트 주파수에 의해 결정됩니다. 시스템 클럭 세분성보다 작은 시간 값은 사용되기 전에 해당 세분성으로 반올림됩니다. 즉, `value->it_interval.tv_usec`에서 매우 작지만 0이 아닌 값을 전달하면 다음 호출에서 getitimer에 의해 시스템 클럭 세분성을 저장하고 반환합니다.

아래 예제를 참조하십시오. timeval 구조는 구조를 다음과 같이 정의합니다: Timers는 요청된 시간 전에 만료되지 않지만 시스템 타이머 해상도 및 시스템 부하에 따라 일부(짧은) 시간이 만료될 수 있습니다. (하지만 아래의 버그를 참조하십시오.) 만료시 신호가 생성되고 타이머가 재설정됩니다. 프로세스가 활성화되어 있는 동안 타이머가 만료되면(ITIMER_VIRTUAL의 경우 항상 해당) 신호가 생성될 때 즉시 전달됩니다. 그렇지 않으면 시스템 로드에 따라 약간의 시간으로 배달이 오프셋됩니다. 프로세스가 실행될 때와 프로세스를 대신하여 시스템이 실행될 때 모두 감소합니다. ITIMER_VIRTUAL과 결합된 이 타이머는 일반적으로 사용자 및 커널 공간에서 응용 프로그램에서 보낸 시간을 프로파일로 프로파일하는 데 사용됩니다. 시교수는 만료 시 배송됩니다. 실시예 3: SIGALRM을 보내는 매 초마다, 0.5초마다 SIGVTALRM 신호를 전송한다.