#include <signal.h> #include <stdio.h> #include <unistd.h> void sigcatch(int); int main() { pid_t pid = getpid(); printf("PID:%d\n", pid); if (SIG_ERR == signal(SIGHUP, sigcatch)) { printf("failed to set signal handler.n"); exit(1); } if (SIG_ERR == signal(SIGINT, sigcatch)) { printf("failed to set signal handler.n"); exit(1); } while (1) { sleep(1); } return 0; } void sigcatch(int sig) { printf("catch signal %d\n", sig); exit(1); }
実行時に表示されるプロセスIDに対して,kill -INT XXXXX
やkill -HUP XXXXX
をするとシグナルハンドラが実行される.
プロセスIDを調べるときは上記サンプルのように,プロセスIDを標準出力してもよいし,
ps u | grep a.out
という感じでコマンドを打って確認してもよい.