基于命令行的程序在当今各个操作系统上都应用得非常广泛,但是这些程序没有GUI,所以用户要终止它们时通常都是按"Ctrl+C"或用系统命令直接结束进程,这样可能会造成数据丢失或者一些特殊资源没有释放,因此须要编写一段代码在程序被终止前作一些自己的结束工作。
ANSI C已经提供了一个标准函数signal来捕获命令行的中断信号。
这是该函数在Linux下GCC中的原形:
typedef
void
(
*
sighandler_t)(
int
);
sighandler_t signal( int signum, sighandler_t handler);
sighandler_t signal( int signum, sighandler_t handler);
这是该函数在Microsoft C中的原形:
void
(__cdecl
*
signal(
int
sig,
void
(__cdecl
*
func ) (
int
[,
int