1초마다 print 하는 코드인데
void sig_handler(int sig) {
printf(“sig\n”);
alarm(1);
return;
}
int main(void) {
signal(SIGALRM, sig_handler);
alarm(1);
while(1) { }
return 0;
}
여기서 alarm(1) 을 왜 두번쓰는거에요?
이해가 잘안됩니다..
첫번째 두번째 알람 어떤 이유로 쓰는건지 좀 알려주시면 감사하겟습니다.
1초마다 print 하는 코드인데
void sig_handler(int sig) {
printf(“sig\n”);
alarm(1);
return;
}
int main(void) {
signal(SIGALRM, sig_handler);
alarm(1);
while(1) { }
return 0;
}
여기서 alarm(1) 을 왜 두번쓰는거에요?
이해가 잘안됩니다..
첫번째 두번째 알람 어떤 이유로 쓰는건지 좀 알려주시면 감사하겟습니다.
main에서 하는 알람은 sighandler 호출 시작하는 알람이고, sighandler에서 하는 알람은 sighandler이 자기 자신 계속 불러내기위한 알람임
즉 main에 있는건 시작할때 한번만 실행돼서 트리거 역할을 하고 그 뒤론 계속 sighandler에 있는 알람이 호출되는거
제가 잘 몰라서그런데 signal 함수로 void함수를 호출하는게 아닌가요??
signal 함수는 시그널이랑 시그널핸들러를 연결하는역할임