1和2. #include <stdio.h> #include <stdlib.h> #include <signal.h> void func(int g) { printf("helle!/n"); } int main() { //设置发送信号动作 signal(SIGINT, func); signal(SIGALRM, func); //设置时钟 alarm(5); //挂起等待 pause(); pause(); return 0; } 3. #include <stdio.h> #include <stdlib.h> #include <signal.h> /* void exqu(int g) { exit(g); } */ void func(int g) { printf("helle!/n"); /*signal(SIGINT, exqu); //自定义 退出函数*/ signal(SIGINT, SIG_DFL);//恢复系统默认处理动作 } int main() { signal(SIGINT, func); pause(); pause(); return 0; } ext:信号集 实现 #include <stdio.h> #include <signal.h> #include <unistd.h> void show_handler(int sig) { printf("HELLO!/n", sig); } int main(void) { int i = 0; struct sigaction act, oldact; act.sa_handler = show_handler; //act action 执行的函数 act.sa_flags = SA_RESETHAND | SA_NODEFER; //设置不阻塞 并在再次执行时恢复默认设置 sigaction(SIGINT, &act, &oldact); //信号指定处理的信号 pause(); pause(); } ------------------------------------------- ps 累....翘了好多课..