编写一个在按下 Ctrl+C 时不会终止的 C 程序
在本节中,我们将学习如何编写一个在按下 Ctrl + C 键时不会终止的 C 程序。
Ctrl + C 会生成键盘中断,并停止当前进程的执行。在这里,当我们按下 Ctrl + C 键时,它将打印一条消息然后继续执行。要使用此功能,我们将使用 C 中的信号处理技术。按下 Ctrl + C 时会生成 SIGINT 信号。以下列表中还有一些其他的信号及其功能。
| 信号 | 描述 |
|---|---|
| SIGABRT | 指示异常终止 |
| SIGFPE | 指示浮点异常 |
| SIGILL | 指示无效指令。 |
| SIGINT | 指示发送到程序的交互式关注请求。 |
| SIGSEGV | 指示无效内存访问。 |
| SIGTERM | 指示发送到程序的终止请求。 |
这里我们将使用标准 C 库函数 signal() 来处理这些信号。
示例代码
#include <stdio.h>
#include <signal.h>
void sigint_handler(int signum) { //Handler for SIGINT
//Reset handler to catch SIGINT next time.
signal(SIGINT, sigint_handler);
printf("Cannot be stopped using Ctrl+C
");
fflush(stdout);
}
main () {
signal(SIGINT, sigint_handler);
while(1) { //create infinite loop
}
}输出
Cannot be stopped using Ctrl+C Cannot be stopped using Ctrl+C
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP