摘要:NAMEmq_overview —— POSIX消息队列概述DESCRIPTIONPOSIX消息队列允许进程以消息的形式交换数据。此API与System V消息队列(msgget(2),msgsnd(2),msgrcv(2)等)有明显不同,但做的事情差不多。消息队列通过mq_open(3)创建和打开...
阅读全文
11 2014 档案
摘要:管道和FIFO管道(pipe) 管道在Unix及Linux进程间通信是最基础的,很容易理解。管道就像一个自来水管,一端注入水,一端放出水,水只能在一个方向上流动,而不能双向流动。管道是典型的单向通信,即计算机网络中所说的“半双工”。管道又名匿名管道,所以只能用在具有公共祖先的进程之间使用,通常使用在...
阅读全文
摘要:一、信号生命周期从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理函数执行完毕。相邻两个事件的时间间隔构成信号生命周期的一个阶...
阅读全文
摘要:一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知...
阅读全文
摘要:fg、bg、jobs、&、ctrl + z命令一、 &加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &,二、ctrl + z可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行三、jobs查看当前有多少在后台运行的命令jobs -l 选项可显示所有任务的PID,jobs的...
阅读全文
摘要:【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了
阅读全文
摘要:sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口) 给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函数ol
阅读全文
摘要:sigprocmask系统调用 使用条件: 1、有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数。这种情况是通过阻塞信号实现的。 2、信号阻塞和忽略信号的区别。 阻塞的概念和忽略信号是不同的。操作系统在信号被进程解除阻塞之前不会讲信号
阅读全文
摘要:今天碰到一个SIGHUP问题,再复习一遍: 有些信号的默认处理方式为“终止+core”,这里的core表示,进程终止时,会在进程的当前工作目录生产一个core文件,该文件是进程终止时的内存快照,以便以后供debugger调试用。 以下情况不会生产core文件: (1)为程序设置了set-user-I
阅读全文
摘要:信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程
阅读全文
摘要:消息队列一、函数mq_open头文件mqueue.h;原型mqd_t mq_open(const char *name, int oflag, .../*mode_t mode,struct mq_attr* attr*/);函数功能创建消息队列;参数name:消息队列的名字,根据消息队列的规则,为...
阅读全文
摘要:前言: 消息队列是消息的链接表,存放在内核中,并由消息队列标识符标识。我们将称消息队列为“队列”,其标识符为“队列ID”。msgget创建一个新队列或打开一个存在的队列; msgsnd向队列末端添加一条新消息; msgrcv从队列中取消息, 获取消息是不一定遵循先进先出的, 也可以按消息的类型字段...
阅读全文
摘要:7.1 BccmdBccmd是用来和CSR的芯片进行BCCMD(Bluecore command protocol)通讯的一个工具。BCCMD并非蓝牙协议栈的标准,而是CSR芯片的专属协议Bccmd的调用格式为:bccmd [-t ] [-d ] []Tansport类型包括 HCI USB...
阅读全文
摘要:在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离...
阅读全文
摘要:一个进程在同一时刻只能做一件事情,线程可以把程序设计成在同一时刻能够做多件事情,每个线程处理各自独立的任务。线程包括了表示进程内执行环境必需的信息,包括进程中标识线程的线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量以及线程似有数据。进程的所有信息对该进程的所有线程都是共...
阅读全文