1 #include <stdio.h> 2 #include <signal.h> 3 #include <unistd.h> 4 #include <stdlib.h> 5 6 // 信号处理函数 7 void handle_signal(int signal) 8 { 9 if (signal == SIGINT) 10 { 11 printf("Caught SIGINT (Ctrl+C). Exiting gracefully...\n"); 12 exit(0); // 终止程序 13 } 14 } 15 16 int main() 17 { 18 // 注册信号处理函数 19 signal(SIGINT, handle_signal); 20 21 // 模拟一个长时间运行的进程 22 while (1) 23 { 24 printf("Running... Press Ctrl+C to stop.\n"); 25 sleep(5); 26 } 27 28 return 0; 29 } 30