linux信号
标准信号32个和预留的驱动信号
一、信号的产生
终端按键产生信号
硬件异常产生信号
kill函数或kill命令产生信号
raise函数给当前进程发送指定信号
abort函数给当前产生SIGABRT信号
alarm和setitimer定时产生SIGALRM信号
struct itimerval {
     struct timeval it_interval; /* 定时器休息的间隔 */
     struct timeval it_value;    /* 执行前的截至时间 */
};
sigprocmask函数暂时丢弃被该函数屏蔽的信号直到该函数许可
sigpending函数读取当前进程的未决信号集
二、signal函数捕捉信号和处理
信号注册:
typedef void (*sighandler_t)(int);
信号到达的处理方法:
void catchsigiint(int signo);
旧的信号处理方法:
      sighandler_t handler;
信号号码与处理方法绑定:
      handler = signal(SIGINT, catchsigiint);
三、sigaction函数修改信号处理函数
sigaction方法的处理方式:
struct sigaction {
      void     (*sa_handler)(int);
      sigset_t   sa_mask;
      int        sa_flags;
  };
将信号集初始化和清空
int sigemptyset(sigset_t *set);
添加quit信号到信号集合
int sigaddset(sigset_t *set, int signum);
默认属性(处理函数执行期间,屏蔽本信号)
sa_flags = 0;
信号号码与处理方式绑定
sigaction(SIGINT, &sigaction, NULL);
进程控制块有信号集☆决定进程屏蔽哪些信号,信号函数处理执行期间所屏蔽的信号用sa_mask来指定,调用完再恢复为☆。
开展日期:2018-07-14
 
截至:2018-07-15
海报:IMG_1321.png
 
附件:
asp_string_access.txt
发行人:彭思明
 
出版社:hero
发表评论
提示:
评论加点周期为八小时一次!