?? signallinuxexample.c
字號:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <string.h>#include <errno.h>void foo(int s);int main(int argc, char **argv){ void (*original) (int); //void (*signal(int sig, void (*func)(int)))(int); //if (signal(SIGKILL, foo) == SIG_ERR) //if (signal(65, foo) == SIG_ERR) //if ((original = signal(SIGINT, foo)) == SIG_ERR) if ((original = signal(SIGQUIT, foo)) == SIG_ERR) { fprintf(stderr, "signal() failed: %s\n", strerror(errno)); exit(1); } fprintf(stdout, "Original signal handler is %p\n", original);#if 0 if ((original = signal(SIGINT, foo)) == SIG_ERR) { fprintf(stderr, "signal() failed: %s\n", strerror(errno)); exit(1); } fprintf(stdout, "Original signal handler is %p\n", original); fprintf(stdout, "foo: %p\n", foo);#endif#if 1 //int execl(const char *path, const char *arg, ...); if (execlp("less", "less", "test1.c") < 0) { fprintf(stderr, "execl() failed: %s\n", strerror(errno)); //perror("excel() failed"); }#endif for (;;) { sleep(1); } return 0;}void foo(int s){ fprintf(stderr, "Caught signal %d\n", s);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -