【发布时间】:2014-01-02 12:25:55
【问题描述】:
我怎样才能使 ctrl+c 使用信号来确认问题以在用户退出时停止进程,以及如何发送 ctrl +z ?
【问题讨论】:
我怎样才能使 ctrl+c 使用信号来确认问题以在用户退出时停止进程,以及如何发送 ctrl +z ?
【问题讨论】:
例子:
#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)