简单信号处理

来源:互联网 发布:网络优化工程师证书 编辑:程序博客网 时间:2024/06/15 09:18
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
/*
 *  SIGHUP: 从终端上发出的结束信号
 *  SIGINT: 来自键盘的中断信号(Ctrl-C)
 *  SIGQUIT:来自键盘的退出信号(Ctrl-\)
 *  SIGFPE: 浮点异常信号(例如浮点运算溢出)
 *  SIGKILL:该信号结束接收信号的进程
 *  SIGALRM:进程的定时器到期时,发送该信号
 *  SIGTERM:kill 命令发出的信号
 *  SIGCHLD:标识子进程停止或结束的信号
 *  SIGSTOP:来自键盘(Ctrl-Z)或调试程序的停止执行信号
 */
void my_func(int sign_no)
{
    if (sign_no == SIGINT)
        printf("I have get SIGINT\n");
    else if (sign_no == SIGQUIT)
        printf("I have get SIGQUIT\n");
}
int main()
{
    printf("Waiting for signal SIGINT OR SIGQUIT\n");
    signal(SIGINT, my_func);
    signal(SIGQUIT, my_func);
    pause();
    exit(0);
    return 0;

}


cc mysignal.c -o mysignal -g

./mysignal

Waiting for signal SIGINT OR SIGQUIT

ctrl+c
I have get SIGINT

Waiting for signal SIGINT OR SIGQUIT

ctrl+\
I have get SIGQUIT






原创粉丝点击