zoukankan      html  css  js  c++  java
  • signal 回忆录

    太久不用, 都记不太清了.做个记录

    #include <signal.h>

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

    kill -l 查看信号

    #include <sys/types.h>
    #include <signal.h>

    int kill(pid_t pid, int sig);

    #include <signal.h>

    int raise(int sig);

    #include <unistd.h>

    unsigned int alarm(unsigned int seconds);

    #include <unistd.h>

    int pause(void);

    #include <stdlib.h>

    void abort(void);

    精准定时任务

    #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);

    #include <signal.h>

    int sigqueue(pid_t pid, int sig, const union sigval value);

    非POSIX 标准

    #include <signal.h>

    int sigaction(int signum, const struct sigaction *act,
    struct sigaction *oldact);

     

    阻塞

    #include <signal.h>

    int  sigprocmask(int  how,  const  sigset_t *set, sigset_t *oldset));

    int sigpending(sigset_t *set));

    int sigsuspend(const sigset_t *mask));

    sigprocmask()函数能够根据参数how来实现对信号集的操作,操作主要有三种:

    SIG_BLOCK 在进程当前阻塞信号集中添加set指向信号集中的信号

    SIG_UNBLOCK 如果进程阻塞信号集中包含set指向信号集中的信号,则解除对该信号的阻塞

    SIG_SETMASK 更新进程阻塞信号集为set指向的信号集

    sigpending(sigset_t *set))获得当前已递送到进程,却被阻塞的所有信号,在set指向的信号集中返回结果。

    信号集

    typedef struct {

                           unsigned long sig[_NSIG_WORDS];

    } sigset_t;

    #include <signal.h>

    int sigemptyset(sigset_t *set);

    int sigfillset(sigset_t *set);

    int sigaddset(sigset_t *set, int signum)

    int sigdelset(sigset_t *set, int signum);

    int sigismember(const sigset_t *set, int signum);

    sigemptyset(sigset_t *set)初始化由set指定的信号集,信号集里面的所有信号被清空;

    sigfillset(sigset_t *set)调用该函数后,set指向的信号集中将包含linux支持的64种信号;

    sigaddset(sigset_t *set, int signum)在set指向的信号集中加入signum信号;

    sigdelset(sigset_t *set, int signum)在set指向的信号集中删除signum信号;

    sigismember(const sigset_t *set, int signum)判定信号signum是否在set指向的信号集中。

  • 相关阅读:
    django学习之命令
    832. 翻转图像
    JUC线程池深入刨析
    CountDownLatch、CyclicBarrier、Samephore浅谈三大机制
    深入理解Atomic原子类
    浅谈volatile关键字
    web应用启动的时候SpringMVC容器加载过程
    MySQL锁机制
    TCP拥塞控制
    HTTPS的加密流程(通俗易懂,不可错过)
  • 原文地址:https://www.cnblogs.com/banwhui/p/4661396.html
Copyright © 2011-2022 走看看