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中去
 
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
linux目录架构
/ 根目录
/bin 常用的命令
binary file 的目錄
/boot 存放系统启动时必须读取的档案,包括核心
(kernel) 在内
/boot/grub/menu.lst GRUB设置
/boot/vmlinuz 内核
......
1. 步骤一
法一:修改系统编译时要用到的Config.in,增加你要用的全局变量
法二:写一个自己的Config.in,然后在其他会编译到的Config.in中包含
2.步骤二
make menuconfig
之后在生成的.config中,就可以grep到新添加的变量了
3.步骤三
在Makefile中就可以用这个变量了。 ......
原文地址:http://www.xxlinux.com/linux/article/development/embed/20080227/14047.html
Linux和uClinux
Linux正逐渐地应用于嵌入式设备,uClinux正是在这种氛围下产生的。uClinux就是Micro-Control-Linux,它也是一个 ......
linux下想解压rar文件 必须安装软件,我使用到是rarlinux
下面是下载地址
rarlinux官方网站下载地址
http://www.rarsoft.com/download.htm
安装 ......