信号集

作者: 静倚晴窗笑此生 | 来源:发表于2019-03-24 19:27 被阅读0次

    1.信号集操作函数

    函数声明

    #include <signal.h>
    
    int sigemptyset(sigset_t *set);  //将信号集设置为空
    
    int sigfillset(sigset_t *set);   //将信号集设置为满
    
    int sigaddset(sigset_t *set, int signum);  //在set信号集中添加signum信号
    
    int sigdelset(sigset_t *set, int signum);  //在set信号集中删除signum信号
    
    int sigismember(const sigset_t *set, int signum);   //查看set信号集有没有signum信号
    

    参数

    set为 sigset_t 类型,即信号集,signum为信号

    返回值

    sigemptyset(), sigfillset(), sigaddset(), 和 sigdelset()成功返回0;失败返回-1

    sigismember() 1代表set信号集有signum信号,0代表没有,-1代表出错,并设置errno

    2.设置信号屏蔽字

    ​ sigprocmask(2)

    函数声明

    #include <signal.h>
    
    int sigprocmask(int how, const sigset_t  *set,  sigset_t  *oldset);
    

    3.等待信号

    ​ sigsuspend(2)

    #include <signal.h>
    int sigsuspend(const sigset_t *mask);
    

    4.为信号注册新行为

    重要,完全取代signal( )

    sigaction(2)

    #include <signal.h>
    int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);
    

    5.产生信号

    setitimer(2)

    #include <sys/time.h>
    
    int getitimer(int which, struct itimerval *curr_value);
    int setitimer(int which, const struct itimerval *new_value,struct itimerval *old_value);
    

    相关文章

      网友评论

          本文标题:信号集

          本文链接:https://www.haomeiwen.com/subject/tpfpvqtx.html