#define SIGHUP 1 /* hangup */
SIGHUP是Unix系统管理员很常用的一个信号。许多后台服务进程在接受到该信号后将会重新读取它们的配置文件。然而,该信号的实际功能是通知进程它的控制终端被断开。缺省行为是终止进程。
#define SIGINT 2 /* interrupt */
对于Unix使用者来说,SIGINT是另外一个常用的信号。许多shell的CTRL-C组合使得这个信号被大家所熟知。该信号的正式名字是中断信号。缺省行为是终止进程。
#define SIGQUIT 3 /* quit */
SIGQUIT信号被用于接收shell的CTRL-/组合。另外,它还用于告知进程退出。这是一个常用信号,用来通知应用程序从容的(译注:即在结束前执行一些退出动作)关闭。缺省行为是终止进程,并且创建一个核心转储。
#define SIGTERM 15 /* software termination signal from kill */
SIGTERM信号被发送给进程,通知该进程是时候终止了,并且在终止之前做一些清理活动。SIGTERM信号是Unix的kill命令发送的缺省信号,同时也是操作系统关闭时向进程发送的缺省信号。缺省行为是终止进程。
代码为:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
void sigroutine(int dunno)
{
switch (dunno)
{
case 1:
printf("SIGHUP ");
exit(0);
break;
case 2:
printf("SIGINT ");
exit(0);
break;
case 3:
printf("SIGQUIT ");
exit(0);
break;
case 15:
printf("SIGTERM ");
exit(0);
break;
}
return;
}
int main(void)
{
signal(SIGHUP, sigroutine);
signal(SIGINT, sigroutine);
signal(SIGQUIT, sigroutine);
signal(SIGTERM, sigroutine);
while(true)
{
int a = 1 + 1;
}
return 0;
}