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

在程序出现故障并在终端编译器中异常运行时进行编程时,程序员可以明确停止程序运行。为了明确停止程序,用户必须知道需要按下的正确的键盘快捷键。

要终止代码块的执行,可以使用两种类型的键盘快捷键。

  • Ctrl + c-用于停止程序的执行,需要一些时间才能完成I / O操作,然后中止执行。它向进程终止发送SIGINT信号。在某些语言中,有多种方法可以处理此SIGINT,例如C中的signal函数。

  • Ctrl + z-用于停止程序的执行,所有与该流程相关的任务都将关闭,并且执行将被挂起。尽管实现相同,但它将SINTSTP信号发送到终止程序的进程,但与其他信号相比,此信号功能更强大。这也可以处理。

在这里,我们将编写一个能够超越ctrl + z调用的代码。而不是暂停程序,程序将输出“ ctrl + z无法暂停此代码”。

如上 ,可以使用C编程语言处理ctrl + z调用。当SINTSTP信号被调用以结束程序处理时。我们将重新定义该信号的作用,以便在使用时不终止代码并打印一行。

signal()方法用于处理此类事情。

示例

#include <stdio.h>

#include <signal.h>

void signalhandler(int sig_num){

   signal(SIGTSTP, signalhandler);

   printf("Cannot execute Ctrl+Z\n");

}

int main(){

   int a = 1;

   signal(SIGTSTP, signalhandler);

   while(a){

   }

   return 0;

}

输出结果

// an infinite loop

以上是 按下Ctrl + Z时不挂起的C程序 的全部内容, 来源链接: utcz.com/z/338295.html

回到顶部