程序设计。设计一个程序,要求程序运行后进入无限循环,在无限循环中每3秒输出一条语句;当用户按下中断组合键(Ctrl+C)发送信号SIGINT,此时调用信号处理函数(自定义函数fun_ctrl_c)。在程序正常结束前,再应用signal函数(用参数SIG_DFL),恢复系统对信号的默认处理方式。
时间: 2024-02-18 15:04:46 浏览: 54
程序的设计
好的,以下是设计的程序代码:
```c
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
void fun_ctrl_c(int sig) {
printf("\n收到 SIGINT 信号,程序即将结束。\n");
// 恢复系统对信号的默认处理方式
signal(SIGINT, SIG_DFL);
}
int main() {
// 注册信号处理函数
signal(SIGINT, fun_ctrl_c);
// 进入无限循环,每3秒输出一条语句
while (1) {
printf("程序正在运行中...\n");
sleep(3);
}
return 0;
}
```
程序运行后会进入无限循环,每3秒输出一条语句。当用户按下中断组合键(Ctrl+C)时,程序会执行自定义的信号处理函数 `fun_ctrl_c`,输出一条提示信息,并用 `signal` 函数恢复系统对信号的默认处理方式。这样程序就能正常结束了。
阅读全文