Linux 信号
yyyyyyyuande
这个作者很懒,什么都没留下…
展开
-
Linux信号 一 信号可靠性与分类
开发SNMP的时候用到了Linux信号机制,总结了一下关于信号的知识。信号是一种进程间通信手段,本质是一种软件中断,用来处理异步事件。信号机制是Unix家族里一个古老的通信机制。传统的信号机制有一些弊端,更为严重的是信号处理函数的执行流和正常的执行流同时存在,这可能会对软件运行带来一定问题。目录1. 信号的生命周期2. 信号的产生3. 信号的处理4. 信号的分类5. 信...原创 2018-11-09 08:56:28 · 873 阅读 · 0 评论 -
Linux信号 三 信号发送接口集合
信号发送接口包括raise,kill,killpg,tkill,tgkill,pthread_kill,sigqueue等。1. raise()/** * raise用于向进程自身发送信号 * 成功返回0,失败返回非0值,并置errno. * 只有信号处理函数执行完毕之后,raise才能返回。 * * 对于单线程的程序而言,相当于调用了如下语句: * kill(getpid(...原创 2018-11-10 10:31:30 · 920 阅读 · 0 评论 -
Linux信号 四 异步等待信号与同步等待信号接口
信号的同步等待和异步等待区别就是信号处理函数的执行与否,异步等待是信号处理函数已经执行了,同步等待是信号处理函数还没有执行。异步等待接口:pause() 和 sigsuspend()1. pause()/** * 等待信号 * pause()函数将调用进程/线程挂起,使之进入可中断的睡眠状态,直到传递了一个信号为止。 * 这个信号的动作或者是执行用户定义的信号处理函数,或者是终...原创 2018-11-10 12:04:03 · 1898 阅读 · 0 评论 -
Linux信号 五 信号挂起与信号掩码操作接口集
A signal may be blocked, which means that it will not be delivereduntil it is later unblocked. Between the time when it is generatedand when it is delivered a signal is said to be pending. ...原创 2018-11-10 14:35:40 · 1288 阅读 · 0 评论 -
Linux信号 二 信号处理函数注册
每一个信号都有一个信号处理函数,可以是SIG_IGN, SIG_DFL或者是用户自定义的处理函数。使用用户自定义的处理函数需要注册,注册接口有如下两种。第一种是signal调用#include <signal.h>/** * sighandler_t是GNU的扩展,如果在glibc下面使用的话,编译的时候需要加上-D_GNU_SOURCE * 或者手动定义 */...原创 2018-11-10 09:19:16 · 2772 阅读 · 0 评论 -
Linux信号 六 信号与线程的关系
" POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称. POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作...原创 2018-11-10 14:47:14 · 671 阅读 · 0 评论