📜  按下Ctrl + Z时不挂起的C程序

📅  最后修改于: 2021-05-26 01:07:26             🧑  作者: Mango

编写一个在按下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基础课程》。