C语言信号处理

#include <csignal> /#include <signal.h>
定义了程序执行时如何处理不同的信号。
函数:
void (*signal(int sig, void (*func)(int)))(int);
函数理解:
    void function(int);
    void returnFunction(int);
    typedef void(*pFuncType)(int); // 定义一个函数指针类型,pFuncType是类型
    // void (*pointerFunc)(int); //    pointerFunc是一个指针
    pFuncType pFunc1 = function;
    pFuncType pFunc2 = returnFunction;


    pFuncType signalFunction(int sig, pFuncType func); // 声明一个信号处理函数
    signal的函数形式等同于signalFunction
参数介绍:
    信号:
        SIGABRT     异常中断
        SIGFPE      浮点异常,参考float-point environment
        SIGILL      非法指令
        SIGINT      交互式信号,如中断。
        SIGSEGV     非法访问存储器,如访问不存在的内存单元。
        SIGTERM     发送给本程序的终止请求信号
    func:
        SIG_DFL:信号默认处理函数
        SIG_IGN:忽视信号
返回值:
    如果用户自定义的func函数执行成功则返回用户自定义的func;
    如果信号被SIG_DFL或SIG_IGN处理则返回SIG_DFL或SIG_IGN;
    如果信号执行失败则返回SIG_ERR。
使用:
    sig_atomic_t signaled = 0;


    void my_handler (int param)
    {
        signaled = 1;
    }
    void (*prev_handler)(int);
    prev_handler = signal (SIGINT, my_handler);
    // my_handler处理信号SIGINT


int raise (int sig);
向当前进程发送信号

猜你喜欢

转载自blog.csdn.net/u010196624/article/details/77146030
今日推荐