现在的位置: 首页 > 综合 > 正文

简单信号处理

2017年12月26日 ⁄ 综合 ⁄ 共 700字 ⁄ 字号 评论关闭

#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

【上篇】
【下篇】

抱歉!评论已关闭.