编写一个在按下Ctrl + Z时不会终止的C程序。它显示一条消息“无法使用Ctrl + Z挂起”并继续执行。
我们可以为此使用Unix信号。当按Ctrl + Z时,将生成SIGTSTP信号。
SIGTSTP信号由其控制终端发送到进程以请求其停止(终端停止)。我们可以捕获该信号并运行我们自己定义的信号。
标准C库函数signal()可用于为上述任何信号设置处理程序。
// C program that does not suspend when
// Ctrl+Z is pressed
#include
#include
// Signal Handler for SIGTSTP
void sighandler(int sig_num)
{
// Reset handler to catch SIGTSTP next time
signal(SIGTSTP, sighandler);
printf("Cannot execute Ctrl+Z\n");
}
int main()
{
// Set the SIGTSTP (Ctrl-Z) signal handler
// to sigHandler
signal(SIGTSTP, sighandler);
while(1)
{
}
return 0;
}
输出:
Cannot execute Ctrl+Z
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。