test_sigint.c 476 B

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