test.c
#include
#include
void int_handler(void); int main(int argc, char argv) { sigset( SIGINT, int_handler); printf( "Process_pid=[%d]\n", getpid() ); while(1); return 0; } void int_handler(void) { printf("Get a SIGINT signal!\n"); }
SIGINT: 程序中止信号,在用户键入INTR字符(通常是Ctrl+C)时发出。
gcc test.c -o test
运行程序:
./test
#include
typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);
#include
#include
int main(int argc, char *argv[]) { signal(SIGINT, SIG_IGN); while(1); return 0; }
#include
#include
int main(int argc, char *argv[]) { signal(SIGINT, SIG_DFL); while(1); return 0; }
kill - send a signal to a process
kill -l 11 Translate number 11 into a signal name. kill -L //kill -l ??? List the available signal choices in a nice table. kill 123 543 2341 3453 Send the default signal, SIGTERM, to all those processes.
在进程中,SIGTSTP(信号量20: Ctrl+Z)和SIGKILL(信号量9)信号是不可以被捕获或者忽略的。除此之外,其他的各种信号都可以被进程捕获和处理。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206909.html原文链接:https://javaforall.net
