#include <stdio.h>
#include <signal.h>
void ALARMhandler(int sig)
{
signal(SIGALRM, SIG_IGN); /* ignore this signal */
printf("Hello");
signal(SIGALRM, ALARMhandler); /* reinstall the handler */
}
int main(int argc, char *argv[])
{
alarm(2); /* set alarm clock */
while (1)
;
printf("All done");
}
나는 프로그램 2 초 후 "안녕하세요"인쇄 할 것으로 예상, 대신 출력은 다음과 같습니다간단한 신호 - C 프로그래밍 및 알람 기능은
어떤 생각이 무엇인가 "zsh을 ./a.out 경보" 계속 하시겠습니까?
그러나 실 나는 버전 1 인쇄 (매초)이 테스트 월드의 예 : Access 데이터베이스를 백엔드로 사용하는 시스템에서 한 번 작업 한 적이 있는데 특정 상황에서 신호 처리기의'printf()'호출이 stdout 대신 .mdb 파일에 기록하여 복구 할 수 없을 정도로 데이터베이스를 덮었습니다 . –