26 lines
476 B
C
26 lines
476 B
C
#include <signal.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
|
|
// 信号处理函数
|
|
void handle_signal(int signal) {
|
|
if (signal == SIGINT) {
|
|
printf("Caught SIGINT (Ctrl+C). Exiting gracefully...\n");
|
|
exit(0); // 终止程序
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
// 注册信号处理函数
|
|
signal(SIGINT, handle_signal);
|
|
|
|
// 模拟一个长时间运行的进程
|
|
while (1) {
|
|
printf("Running... Press Ctrl+C to stop.\n");
|
|
sleep(5);
|
|
}
|
|
|
|
return 0;
|
|
}
|