Maison > développement back-end > C++ > le corps du texte

不会在按下Ctrl+Z时暂停的C程序

WBOY
Libérer: 2023-09-19 18:13:02
avant
1241 人浏览过

不会在按下Ctrl+Z时暂停的C程序

在编程中,当程序出现故障并在终端编译器中以异常方式运行时,程序员有权利显式停止程序的运行。要显式停止程序,用户必须知道需要按下的正确键盘快捷键。

为了终止代码块的执行,有两种类型的键盘快捷键被使用。

  • Ctrl+c - 用于停止程序的执行,它需要一些时间来完成输入/输出操作,然后暂停执行。它向进程发送一个SIGINT信号,进程将被终止。在某些语言中,可以通过类似C语言中的信号函数来处理这个SIGINT

  • Ctrl+z - 用于停止程序的执行,与进程相关的所有任务都被关闭,执行被暂停。它向进程发送一个SINTSTP信号,终止程序的执行。尽管实现方式相同,但这个信号比其他信号更强大。这也可以被处理。

在这里,我们将编写一个代码,可以绕过ctrl+z的调用。而不是被暂停,程序将打印出“ctrl+z不能暂停此代码”。

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

signal()方法用于处理这种类型的事情。

示例

 演示

#include 
#include 
void signalhandler(int sig_num){
   signal(SIGTSTP, signalhandler);
   printf("Cannot execute Ctrl+Z

"); } int main(){ int a = 1; signal(SIGTSTP, signalhandler); while(a){ } return 0; }

Copier après la connexion

输出

// an infinite loop
Copier après la connexion

以上是不会在按下Ctrl+Z时暂停的C程序的详细内容。更多信息请关注PHP中文网其他相关文章!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!