zoukankan      html  css  js  c++  java
  • linux signal函数理解

    #include <signal.h>
    typedef void ( *sighandler_t )(int);
    sighandler_t signal( int signum, sighandler_t handler );

    void ( *signal(int signum, void (*handler)(int)) ) (int);

     
    在Unix/Linux中signal函数是比较复杂的一个,其定义原型如下:
    void (*signal(int signo,void (*func)(int))) (int)
    这个函数中,最外层的函数体
    void (* XXX )(int)表明是一个指针,指向一个函数XXX的指针,XXX所代表的函数需要一个int型的参数,返回void
    signal(int signo, void(*func)(int))是signal函数的主体.
    需要两个参数int型的signo以及一个指向函数的函数.
    void (*func)(int).
    正是由于其复杂性,在[Plauger 1992]用typedef来对其进行简化
    typedef void Sigfuc(int);//这里可以看成一个返回值 .
    再对signal函数进行简化就是这样的了
    Sigfunc *signal(int,Sigfuc *);
     
     
    在signal.h头文件中还有以下几个定义
    #define SIG_ERR (void (*)())-1
    #define SIG_DFL (void (*)())0
    #define SIG_IGN (void (*)())1
     
    参考http://blog.csdn.net/nizhigang2000/article/details/673424
     
    参考2

  • 相关阅读:
    软工实践个人总结
    第02组 Beta版本演示
    第02组 Beta冲刺(5/5)
    第02组 Beta冲刺(4/5)
    第02组 Beta冲刺(3/5)
    第02组 Beta冲刺(2/5)
    第02组 Beta冲刺(1/5)
    第02组 Alpha事后诸葛亮
    第02组 Alpha冲刺(6/6)
    第02组 Alpha冲刺(5/6)
  • 原文地址:https://www.cnblogs.com/merlindu/p/6375786.html
Copyright © 2011-2022 走看看