#include <signal.h>
#include <unistd.h>
void sig_handler(int signo); // 비프음 발생 함수
int main()
{
int i = 0;
signal(SIGINT, (void *)sig_handler);
while(1)
{
printf("%d\n", i);
i++;
sleep(1);
}
return 1;
}
void sig_handler(int signo)
{
printf("SIGINT 발생\n");
}
SIGINT(:12) 를 발생시키는 가장간단한 방법은 키보드의 Ctrl+C 를
입력하는 방법이다. 위 프로그램을 실행시킨후 Ctrl+C 를 실행시키면
SIGINT 시그널이 전달되고 어플리케이션은 해당 시그널 핸들러인
sig_handler() 함수를 실행시키는걸 볼수 있을것이다.
1장. signal(2)
시그널(:12)을 처리한다. - ANSI C
1.1절. 사용법
1.2절. 설명
성공할경우 0을 실패했을경우에는 -1을 반환하며, 적당한 errno(:12) 값을 설정한다.
시그널을 무시한다.
그러나 SIGKILL(:12), SIGSTOP(:12) 는 무시할수 없다.
시그널의 기본동작을 하도록 한다.
SIGKILL, SIGSTOP 시그널에 대해서는 핸들러를 지정할수 없다. 이들 시그널은 무시할수도 없고 핸들러를 지정할수도 없이 단지 기본동작으로만 작동한다.
1.3절. 반환값
signal 은 이전의 시그널 핸들러의 포인터를 반환하며, 에러시 SIG_ERR 을 리턴한다.
1.4절. 예제
관련글
Recent Posts
Archive Posts
Tags