-
Notifications
You must be signed in to change notification settings - Fork 7
alarm(2)
Seonghun Lim edited this page May 9, 2019
·
2 revisions
alarm - 시그널 전달되도록 알람 시계 설정하기
#include <unistd.h>
unsigned int alarm(unsigned int seconds);
alarm()
은 seconds
초 후에 호출 프로세스에게 SIGALRM
시그널이 전달되도록 한다.
seconds
가 0이면 대기 중 알람이 있으면 취소한다.
어느 경우이든 앞서 설정한 alarm()
이 있으면 취소된다.
전달되기로 예약된 알람이 있었으면 그 시점까지 남아 있던 초 수를 alarm()
이 반환한다. 예약된 알람이 없었으면 0을 반환한다.
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
alarm()
과 setitimer(2)는 같은 타이머를 공유한다. 즉 한쪽을 호출하면 다른 쪽 사용에 영향을 주게 된다.
alarm()
으로 생성된 알람이 execve(2)를 거치면서 보존된다. fork(2)를 통해 생긴 자식들이 물려받지 않는다.
sleep(3)이 SIGALRM
을 이용해 구현돼 있을 수 있다. 즉 alarm()
과 sleep(3)을 같이 쓰는 건 좋지 않다.
언제나 그렇듯 스케줄링 지연 때문에 프로세스 실행이 임의 시간만큼 지연될 수 있다.
gettimeofday(2), pause(2), select(2), setitimer(2), sigaction(2), signal(2), timer_create(2), timerfd_create(2), sleep(3), time(7)
2017-05-03