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

  • 相关阅读:
    c# asp.net 鼠标改变控件坐标位置,更改控件坐标,注册表保存读取,打印,查找局域网内打印机等等收集
    jquery,extjs中的extend用法小结
    JavaScript创建Map对象(转)
    ExtJS与jQuery的一点细节上的对比
    jQuery 的原型关系图,整体把握jQuery
    github网站介绍、并使用git命令管理github(详细描述)
    1.移植3.4内核-分析内核启动过程,重新分区,烧写jffs2文件系统
    6.移植uboot-支持yaffs烧写,打补丁
    5.移植uboot-设置默认环境变量,裁剪,并分区
    4.移植uboot-使uboot支持DM9000网卡
  • 原文地址:https://www.cnblogs.com/banwhui/p/4661396.html
Copyright © 2011-2022 走看看