Linux 信号集 浅析
Linux信号有多种说法。一个进程创建一个信号用于发送给另外一个进程叫做发送一个信号,内核创建一个信号叫做生成一个信号,进程自己向自己发送信号叫做唤起一个信号。不过我看也没必要这么学究气。
信号集--signel set,其实就是将多个信号放在集合中进行集中的处理。POSIX.1定义了sigset_t以包涵一个信号集,并且定义了五个处理信号的函数:
int sigemptyset(sigset_t *set);
int sigfillset(sigset_t *set);
int sigaddset(sigset_t *set,int signo);
int sigdelset(sigset_t *set,int signo)
int sigismember(const sigset_t *set,int signo);
还有一个重要的函数:int sigprocmask(int how,const sigset_t *restrict set,sigset_t *restrict oset);
单纯讲这些函数很难讲明白,下面结合程序来讲,程序来自UNIX环境高级编程:
static void sig_quit(int); //信号处理函数
int main( )
{
sigset_t newmask,oldmask,pendmask;
if(signal(SIGQUIT,sig_quit)==SIG_ERR)
err_sys("can not catch SIGQUIT");
-----------------------------------------------------------------------------------------------------------
sigemptyset(&newmask); //清空信号掩码集newmask,不阻塞任何信号
sigaddset(&newmask,SIGQUIT); //将SIGQUIT信号放入信号集newmask中去
if(sigprocmask(SIG_BLOCK,&newmask,&oldmask)<0) //将oldmask 和newmask合并
err_sys("SIG_BLOCK error"); //当前信号屏蔽字放在newmask里,以前的放在oldmask里
sleep(5);
if(sigpending(&pendmask)<0) //保存所有被阻塞的信号,本例即保存SIGQUIT到pendmask中去
 
相关文档:
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
一 、Linux文件结构
文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。
目录提供了管理文件的一个方便而有效的途径。
Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件 ......
LInux笔记
观察系统的使用状态:如果要看目前有谁在在线,可以下达 who 这个指令,而如果要看网络的联
机状态,可以下达 netstat -a 这个指令,而要看背景执行的程序可以执行 ps -aux 这个指令。
使用这些指令可以让你稍微了解主机目前的使用状态!
关机的正确指令用法啰!
• 将数据同步写入硬盘中的指令: sync
& ......
原帖见http://www.inthirties.com/thread-685-1-1.html
1、什么裸设备?字符设备?块设备?
裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。
字符设备:对字符设备的读写不需要通过OS的buffer ......
安装过程中出现“X11/extensions/Print.h: No such file or directory”的解决方法
这是因为系统中缺少libXp-devel
# yum install libXp-devel
安装过程中出现“X11/bitmaps/gray: No such file or directory”的解决方法
这是因为系统中缺少xorg-x11-xbitmaps(x11/xbitmaps (Ubuntu) and xorg-x1 ......