• 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指向的信号集中。

  • 相关阅读:
    react创建项目01
    jq中的时间转化
    vue-resource调用promise取数据方式整理
    ES6 语法
    js获取时间
    trigger()模拟事件操作
    移动端调出不同需求的键盘
    移动端ios滚动卡顿问题
    godaddy购买的域名解析到aws的route53
    k8s 排错
  • 原文地址:https://www.cnblogs.com/banwhui/p/4661396.html
Copyright © 2020-2023  润新知