- 博客(8)
- 资源 (36)
- 收藏
- 关注
原创 进程间通信之线程使用共享内存
代码备用#include<stdio.h>#include<stdlib.h>#include<pthread.h>#include<ctype.h>#include<unistd.h>#include<string.h>#include<fcntl.h> //O_RDWR#include<sys/types.h>#include<sys/ipc.h>#include<sys/
2015-04-21 14:43:17 815
原创 进程间通信之共享内存shared memory
共享内存是一种简单而高效的进程间通信方法。管道,消息队列等通信方法需要在主存和用户空间之间进行4次数据复制,而共享内存只需要2次。分析如下: 管道,消息队列等: 第一次:数据产生后需要写入进程A的用户空间 第二次:把数据从进程A的用户空间复制到内核空间中 第三次:把数据从内核空间复制到进程B的用户空间中 第四次:把数据从进程B的用户空间写入输出文件 共享内存的实现是将内核空间的物理内存映
2015-04-15 11:24:56 1588
原创 进程间通信之消息队列msg queue
消息message是一个格式化的可变长信息单位。消息机制允许一个进程向任何其他进程发送一个消息。本质上,消息队列很像是内核维护的一个信箱,任何进程都可以向内核发送一封信,这个信包括消息的类型(用long型表示),和消息的内容(char型数组)。任何进程通过IPC对象标识符,就可以向指定的信箱发送消息。类似的,任何进程可以通过IPC对象标识符,来从信箱中收取指定类型的消息。这里的任何进程,是指具有访问
2015-04-13 16:16:35 1580
原创 进程间通信IPC概要
pipe:无格式,限亲缘关系进程named pipe/FIFO:使用命名管道的所有进程都关闭,其数据结构从内存中消失。signal:异步方式,信息量小message queue:异步方式,适合通信频繁但是数据量的通信semaphore:实现进程间同步shared memory:为大数据量的进程间通信提供服务,最快最简单,但是需要其他IPC配合来防止出现竞争条件socket:不同于其他IP
2015-04-13 14:19:54 429
原创 进程间通信之命名管道FIFO
命名管道与匿名管道类似,但是与具体的路径名相关,以命名管道文件的形式存在,遵循“先进先出(first in first out)”原则,因此又被称为FIFO。 在linux环境中,可以在命令行中通过执行mkfifo命令来建立一个命名管道。 例如,在/tmp下建立一个fifotest的命名管道,可执行命令:mkfifo -m 0644 /tmp/fifotest-m参数后面跟八进制数来指定管道的读
2015-04-13 10:57:27 502
原创 进程间通信之信号signal
信号是进程间通信机制中唯一的异步通信机制。也就是说进程是不知道什么时候会收到其他进程发来的信号而进行相应的处理。提到信号,不能不提到的就是中断。信号全称为软信号中断,或软中断。进程到在收到信号后会有相应的反应:1.捕获信号。类似于中断处理函数,进程在收到指定信号后,会调用之前注册的信号处理函数。例如signal(3, sigroutine)就是说进程先绑定下信号值为3的信号处理函数,当进程收到信号
2015-04-10 15:38:10 903
原创 进程间通信之管道pipe
管道用于具有亲缘关系的进程之间的通信,又称匿名管道,以与命名管道区分。 通过管道的通信数据遵循“先进先出”原则,并且是单向通信,因此若有两个进程需要双向通信,则至少需要建立两个管道。 “具有亲缘关系的进程”是指父进程与子进程,或者父进程派生的2个子进程。 下面就直接上代码演示两个兄弟进程之间通过匿名管道传递数据:#include <stdio.h>int main(){ int f
2015-04-09 15:27:50 492
原创 动态库/共享库Shared Object
动态库或者称为共享库,是共享代码的另外一种实现方式。 其特征是在程序实际运行时,动态地加载所调用的函数或变量等符号,这样可以减小应用程序文件的尺寸;而且遇到功能升级或者修复bug时只要更新库文件就可以了,不必更新应用程序。 在windows环境中,对应的动态库常以*.dll文件形式存在,意为Dynamic Link Library。在linux环境下,生成动态库也很简单:添加编译选项,直接将*.
2015-04-03 17:39:41 748
Ultimate_Guide_Arduino_Sensors_Modules_arduino传感器/模块开发终极指南
2019-01-29
I2C specUM10204 I2C总线协议
2016-03-21
usb serial and 串口工具
2015-06-17
linux学习资料集锦
2015-05-21
饮料条形码.手机淘宝
2014-08-19
usb2.0spec
2012-03-19
C程序设计语言_第2版_新版_无广告
2011-11-07
路由器详细命令行配置录像
2011-08-22
C语言字符串各函数-具体实现
2011-07-25
GSM11.11全部精华
2011-06-28
算法设计与实现-分治法
2011-04-19
算法设计与实现-动态规划
2011-04-19
算法设计与实现-递归算法
2011-04-19
算法设计与实现-贪婪法
2011-04-19
11 Steps To Create A Successful Website
2011-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人