- 博客(19)
- 资源 (23)
- 收藏
- 关注
原创 在 Linux 上实现基于 Socket 的多进程实时通信
套接口(Socket)为目前Linux上最为广泛使用的一种的进程间通信机制,与其他的Linux通信机制不同之处在于除了它可用于单机内的进程间通信以外,还可用于不同机器之间的进程间通信。但是由于Socket本身不支持同时等待和超时处理,所以它不能直接用来多进程之间的相互实时通信。
2011-08-25 15:59:10 219
原创 Linux 上实现双向进程间通信管道
问题和常见方法Linux 提供了 popen 和 pclose 函数 (1),用于创建和关闭管道与另外一个进程进行通信。其接口如下:FILE *popen(const char *command, const char *mode);int pclos
2011-08-25 15:57:42 297
原创 Linux环境进程间通信(六): 套接口
一个套接口可以看作是进程间通信的端点(endpoint),每个套接口的名字都是唯一的(唯一的含义是不言而喻的),其他进程可以发现、连接并且与之通信。通信域用来说明套接口通信的协议,不同的通信域有不同的通信协议以及套接口的地址结构等等,因此,创建一个套接口时,要指明它的通信域。比较
2011-08-25 15:55:39 466
原创 Linux环境进程间通信(五): 共享内存(下)
系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件(这是通过shmid_kernel结构联系起来的),后面还将阐述。1、系统V共享内存原理
2011-08-25 15:53:40 265
原创 Linux环境进程间通信(五): 共享内存(上)
采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在
2011-08-25 15:48:25 257
原创 Linux环境进程间通信(四): 信号灯
一、信号灯概述信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。信号灯有以下两种类型:二值信号灯:最简单的信号灯
2011-08-25 15:47:07 292
原创 Linux环境进程间通信(三): 消息队列
消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像"即时"的通信方式,它要求接
2011-08-25 15:43:43 220
原创 Linux环境进程间通信(二): 信号(下)
一、信号生命周期从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理函数执行完毕。相邻两个事件的时间
2011-08-25 15:34:42 196
原创 Linux环境进程间通信(二): 信号(上)
一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通
2011-08-25 15:25:22 263
原创 Linux环境进程间通信(一)管道及有名管道
1、管道概述及相关API应用1.1 管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种
2011-08-25 15:21:03 199
原创 深刻理解Linux进程间通信(IPC)
序linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和
2011-08-25 15:19:20 215
原创 解析C语言复杂声明
C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面 的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的
2011-08-25 14:46:33 219
原创 C/C++程序员应聘常见面试题深入剖析
1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的str
2011-08-25 14:45:53 261
原创 C语言中复杂的变量声明的解析
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一
2011-08-25 14:43:55 693
原创 程序员是否需要学习底层知识
程序员是否需要学习底层知识?这两天每天中午午休前都会看一些《编程人生》。现在已经看了七八个人,这些人开始编程的时候,正好是计算机的起步期,所以对整个计算机的底层都比较了解。不知道这是不是这些人能够成为大师的一个必要条件,自己有没有必要在这方面努力一下。我想这也是很多程序员思考
2011-08-25 14:23:58 260
原创 探寻代码民工的根本原因
受限于经验与知识,本来不想写这个话题,不过今天突然想到,用时间思考了这个问题,权将自己的观点写出来和大家交流,欢迎讨论。 “代码民工”这个词可能是程序员的无奈的自嘲,也可能是自谦,反正来源已无法可考。“代码民工”即是指那些编写程序、敲打代码的底层程序开发人员,是IT行业中
2011-08-25 14:22:13 349
原创 明白了这十个故事,你也就参悟了人生
1、断箭 不相信自己的意志,永远也做不成将军。 春秋战国时代,一位父亲和他的儿子出征打仗。父亲已做了将军,儿子还只是马前卒。又一阵号角吹响,战鼓雷鸣了,父亲庄严地托起一个箭囊,其中插着一只箭。父亲郑重对儿子说:“这是家袭宝箭,配带身边,力量无穷,但千万不可抽出来。
2011-08-25 14:10:59 361
原创 男人一生中要做的事
揽住母亲的肩头: 每个人都是最棒的,父体的千万个细胞中最强壮的一个才能跑到最前面与来自母体的细胞结合。这时,有二分之一的机会会诞生一个男人。儿子,无疑是父亲所有理想的最好载体,而母亲给儿子的,是最无休止的爱,她最担心的,是自己的儿子不能顶天立地。当女儿家可以搂着母亲的脖子
2011-08-25 14:09:48 245 1
原创 据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?
1.甲去买烟,烟29元,但他没火柴,跟店员说:“顺便送一盒火柴吧。”店员没给。 乙去买烟,烟29元,他也没火柴,跟店员说:“便宜一毛吧。”最后,他用这一毛买一盒火柴。 这是最简单的心理边际效应。第一种:店主认为自己在一个商品上赚钱了,另外一个没赚钱。赚钱感觉指
2011-08-25 14:07:11 311
stepmotor S-curve SpTA algorithm.zip
2021-01-13
上位机控制单轴步进电机.rar
2020-06-10
PL2303串口驱动.7z
2020-05-28
蓝牙芯片DA14531 DATASHEET.pdf
2020-05-28
linux/gdb手册
2011-01-31
autotools建立makefile实例解析
2010-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人