IT

sigactdemo.c

kio467 2014. 11. 5. 09:57

#include <stdio.h>

#include <signal.h>


#define INPUTLEN 100


main()

{

struct sigaction newhandler; // 시그 액션 선언

sigset_t blocked;

void inthandler();

char x[INPUTLEN];


newhandler.sa_handler = inthandler; // 시그 액션을 핸들링할 함수를 정함

newhandler.sa_flags = SA_RESETHAND | SA_RESTART; // 옵션.. 한번만처리, 


sigemptyset(&blocked);

sigaddset(&blocked, SIGQUIT);


newhandler.sa_mask = blocked;


if (sigaction(SIGINT, &newhandler, NULL) == -1)

perror("sig act ion");


else

while(1)

{

fgets(x, INPUTLEN, stdin);

printf("input : %s",x);

}


}


void inthandler(int s)

{

printf("call %d\n",s);

sleep(s);

printf("done %d\n",s);

}