📄 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 + -