main.c 516 B

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