DragonOS/user/apps/c_unitest/test_sigint.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;
}