perl中使用signal(信号)实例
使用signal,能让你的程序功能更丰富。要在Linux下列出所有的signal,利用kill-l即可。下面是我机器上的输出(后面还有到64的没列出来):
xuyang@xuyang-desktop:/$kill-l 1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL5)SIGTRAP 6)SIGABRT7)SIGBUS8)SIGFPE9)SIGKILL10)SIGUSR1 11)SIGSEGV12)SIGUSR213)SIGPIPE14)SIGALRM15)SIGTERM 16)SIGSTKFLT17)SIGCHLD18)SIGCONT19)SIGSTOP20)SIGTSTP 21)SIGTTIN22)SIGTTOU23)SIGURG24)SIGXCPU25)SIGXFSZ 26)SIGVTALRM27)SIGPROF28)SIGWINCH29)SIGIO30)SIGPWR 31)SIGSYS
其中每个signal在这里有介绍.
下面是一个例子,禁止ctrl+c(ctrl+c会产生一个INT信号给当前程序)来关闭当前程序
subINT_handler{ print("Don'tInterrupt!\n"); }
$SIG{'INT'}='INT_handler';#anotherwayis$SIG{'INT'}=\&INT_handler;
for($x=0;$x<10;$x++){ print("$x\n"); sleep1; }