【问题标题】:how can I handle signals to change ctrl+c and ctrl+z?如何处理改变 ctrl+c 和 ctrl+z 的信号?
【发布时间】:2014-01-02 12:25:55
【问题描述】:

我怎样才能使 ctrl+c 使用信号来确认问题以在用户退出时停止进程,以及如何发送 ctrl +z ?

【问题讨论】:

标签: c linux signals


【解决方案1】:

例子:

#include <stdio.h>
#include <signal.h>
#include <stdlib.h>

int i=0;

void plus()
{
    i++;

}

void close()
{
    printf("\nControl^c has pressed %d times\n",i);
    exit(1);
}

int main()
{
    signal(2,plus);
    signal(20,close);
    getchar();

}

使用此代码,您可以计算按 ^c 的次数以及按 ^z 时程序退出的次数

【讨论】:

  • 在信号处理程序中使用printf() 是不安全的,可能与exit() 相同。另外,使用 signal.h 中的定义而不是裸数字。
  • 绝对使用定义并记住使用signal 手册页中列出的信号安全变量/函数。也没有说明如何发送SIGSTP (ctrl+z)
猜你喜欢
  • 2016-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
  • 2016-07-16
  • 1970-01-01
  • 2021-03-30
相关资源
最近更新 更多