2013年9月22日

<转>Linux环境进程间通信(三)

摘要: 原文链接:http://www.ibm.com/developerworks/cn/linux/l-ipc/part3/index.html原文内容:消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像"即时"的通信方式,它要求接受信号的进程在某个时间范围内对信号做出反应,因此该信号最多在接受信号进程的生命周期内才有意义,信号所传递的信息是接近于随进程持续的概念(process 阅读全文

posted @ 2013-09-22 16:17 净坛使者 阅读(187) 评论(0) 推荐(1) 编辑

<转>Linux环境进程间通信(二): 信号(下)

摘要: 原文地址为:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index2.html原文为:一、信号生命周期从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理函数执行完毕。相邻两个事件的时间间隔构成信号生命周期的一个阶段。下面阐述四个事件的实际意义:信号"诞生"。信号的诞生指的是触发信号的事件发生(如检测到硬件异常、定时器超时以及调用信号发送函 阅读全文

posted @ 2013-09-22 15:44 净坛使者 阅读(188) 评论(0) 推荐(1) 编辑

<转>Linux环境进程间通信(二): 信号(上)

摘要: 原文链接:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html原文如下:一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加信息。信号来源信号事件的发生有两个 阅读全文

posted @ 2013-09-22 15:29 净坛使者 阅读(232) 评论(0) 推荐(1) 编辑

<转>linux进程间通信<一>

摘要: 这篇文章真心不错,只是代码比较久,有些地方需求大家自行修改。先全文转载,以备复习只用。原文链接为:http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/#b正文:1、 管道概述及相关API应用1.1 管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单 阅读全文

posted @ 2013-09-22 14:19 净坛使者 阅读(323) 评论(0) 推荐(2) 编辑

2013年9月2日

《C语言基础日常笔记》

摘要: 1. 类型转换-----------------20130902a, 浮点数(包括单精度与双精度)赋值给整型变量时,舍弃浮点数的小数部分,直接将其整数部分存放在整型变量里。b, 整型变量赋值给浮点数(包括单精度与双精度)时,数值不变,但会以浮点数形式保存到变量里。c, 将一个double型数据赋值给float型变量时,截取其前面7位有效数字,存放在float的存储单元中。d, 无符号char型赋值给整型变量时,则将其char型的8位直接放到int的低8位中,高8位补0。e, 有符号char赋值给int时,则将其char型的8位直接放到int的低8位中,如果字符最高位(即符号位)为1,高8位补1 阅读全文

posted @ 2013-09-02 10:32 净坛使者 阅读(423) 评论(0) 推荐(0) 编辑

2013年8月28日

实现系统函数time,获取当前时间与UTC的间隔

摘要: 因种种原因,最近很少上cnblogs了。刚写了一个实现time的函数,可以通过该函数获取当前时间与1970年1月1日 0时0分0秒的差值,精确到秒,可以用在某些没有时候使用time不正确而不得不调用硬件时钟的场合。把其中HWCLOCK打开即可,关闭的话使用的是date获取的系统时间。其中打开时是应用在PPC架构的嵌入式linux上,具体源码如下:#include #include #include typedef unsigned short YEAR;typedef unsigned short MONTH;typedef unsigned short DAY;typedef unsigne 阅读全文

posted @ 2013-08-28 13:20 净坛使者 阅读(1715) 评论(1) 推荐(0) 编辑

2013年8月12日

<转>单播,广播,组播的缺点与优点

摘要: 原文链接:http://apje.blog.163.com/blog/static/145345252007101175714761/当前的网络中有三种通讯模式:单播、广播、组播(多播),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。一、单播:主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。单播的优点:1 阅读全文

posted @ 2013-08-12 16:31 净坛使者 阅读(879) 评论(0) 推荐(0) 编辑

2013年8月2日

泥淖--------------------大小端

摘要: 声明:文章仅为个人总结所用,鄙人菜鸟,高手勿喷,欢迎批评指正。经常看到通过联合体Union来判断系统是大端还是小端,而大家的解释通常都是:“联合体union的存放顺序是所有成员都从低地址开始存放,解答利用该特性,轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。”而我却始终没有找到这句话是出自哪本书。我知道unsigned short a = 0x1122在大端中存的话就是0x1122,而如果是在小端CPU上运行的话就是0x2211。疑问:1. 那么如果取a的低八位即a&0xff的话,是不是在大端中是0x22,而在小端中就是0x11呢?2. 那么如 阅读全文

posted @ 2013-08-02 18:02 净坛使者 阅读(941) 评论(10) 推荐(0) 编辑

2013年7月30日

<转载>linux下内存泄露查找、BUG调试

摘要: 先收藏着,抽空好好看看:http://www.ibm.com/developerworks/cn/linux/l-pow-debug/简介调试程序有很多方法,例如向屏幕上打印消息,使用调试器,或者只需仔细考虑程序如何运行,并对问题进行有根有据的猜测。在修复 bug 之前,首先要确定在源程序中的位置。例如,当一个程序产生崩溃或生成核心转储(core dump)时,您就需要了解是哪行代码发生了崩溃。在找到有问题的代码行之后,就可以确定这个函数中变量的值,函数是如何调用的,更具体点说,为什么会发生这种错误。使用调试器查找这些信息非常简单。本文将简要介绍几种用于修复一些很难通过可视化地检查代码而发现的 阅读全文

posted @ 2013-07-30 16:37 净坛使者 阅读(9851) 评论(0) 推荐(0) 编辑

<转载>内存管理内幕-动态分配的选择、折衷和实现 对malloc内存分配有个简单的描述,对内存管理有个大致的说明

摘要: 这篇文章看后感觉不错,和我在glibc下的hurdmalloc.c文件里关于malloc的实现基本意思相同,同时,这篇文章还介绍了一些内存管理方面的知识,值得推荐。原文链接地址为:http://www.ibm.com/developerworks/cn/linux/l-memory/原文如下:为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与 局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、 半手工的以及自动的 阅读全文

posted @ 2013-07-30 14:50 净坛使者 阅读(661) 评论(2) 推荐(0) 编辑

导航