细说linux IPC系列
shallnet
一个没赶上脑残一代90后的80后程序猿!
展开
-
细说linux IPC(二):基于socket的进程间通信(下)
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 在两个进程通信当中,存在两个进程相互交换信息的过程,有的都比较复杂,不像上一节那样简单。一般情况下,存在一个服务进程一直在等待客户进程连接,客户进程和服务进程存在如下三种交换数据方式:客户进程发获取服务进程某一全局数据的请求,服务进原创 2014-11-10 13:37:54 · 3317 阅读 · 0 评论 -
细说linux IPC(十):system V 消息队列
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 system V消息队列和posix消息队列类似,linux系统这两种消息队列都支持。先来看一下system V消息队列相关操作及其函数。msgget()函数创建一个消息队列或打开一个消息队列。原创 2014-12-08 17:58:48 · 2815 阅读 · 0 评论 -
细说linux IPC(十一):各种IPC形式比较总结(完)
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 这个系列基本上到现在为止已经差不多把linux上的各种常用的IPC介绍完了,linux上面的IPC大多都是从UNIX上面继承而来。 最初Unix IPC包括:管道、FIFO、信号。System原创 2014-12-09 17:43:22 · 8156 阅读 · 2 评论 -
细说linux IPC(九):posix消息队列
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 消息队列可以看作一系列消息组织成的链表,一个程序可以往这个链表添加消息,另外的程序可以从这个消息链表读走消息。mq_open()函数打开或创建一个posix消息队列。 #inclu原创 2014-12-05 16:45:17 · 7598 阅读 · 0 评论 -
细说linux IPC(八):信号(下)
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 上一节的说了使用kill函数来发送信号和使用signal函数来安装信号处理函数,这一节我们使用另外一种方式来实现安装信号处理和发送信号。 早期UNIX只支持SIGRTMIN之前的不可靠信号,后来增加了SIGR原创 2014-11-24 20:53:45 · 1698 阅读 · 0 评论 -
细说linux IPC(六):pipe和FIFO
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】在unix系统上最早的IPC形式为管道,管道的创建使用pipe函数: #include int pipe(int pipefd[2]);该函数创建一个单向的管道,返回两个描述符 pipefd[0],和pipef原创 2014-11-21 11:57:06 · 2495 阅读 · 0 评论 -
细说linux IPC(七):信号(上)
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 信号类似于中断请求,一个进程不会阻塞在某处等待信号的到来,也不会知道信号何时能到来,信号的产生是随机的,进程只需要注册信号处理函数,在信号到来时执行信号处理函数即可。linux系统支持的信号可以通过命令kill -l来查看:原创 2014-11-24 20:45:18 · 2815 阅读 · 0 评论 -
细说linux IPC(五):system V共享内存
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 system V共享内存和posix共享内存类似,system V共享内存是调用shmget函数和shamat函数。 shmget函数创建共享内存区,或者访问一个存在的内存区,类似系统调用共享内存的ope原创 2014-11-16 10:57:50 · 2208 阅读 · 0 评论 -
细说linux IPC(四):posix 共享内存
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 上一节讲了由open函数打开一个内存映射文件,再由mmap函数把得到的描述符映射到当前进程地址空间中来。这一节说说另外一种类似的共享内存方法,即有shm_open函数打开一个Posix.1 IPC名字(也许是文件系统中的一个路径原创 2014-11-12 09:38:41 · 2241 阅读 · 0 评论 -
细说linux IPC(一):基于socket的进程间通信(上)
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 在一个较大的工程当中,一般都会有多个进程构成,各个功能是一个独立的进程在运行。既然多个进程构成一个工程,那么多个进程之间肯定会存在一些信息交换或共享数据,这就涉及到进程间通信。进程间通道有很多种,比如有最熟悉网络编程中的socket、还原创 2014-11-10 11:55:43 · 10786 阅读 · 1 评论 -
细说linux IPC(三):mmap系统调用共享内存
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】 前面讲到socket的进程间通信方式,这种方式在进程间传递数据时首先需要从进程1地址空间中把数据拷贝到内核,内核再将数据拷贝到进程2的地址空间中,也就是数据传递需要经过内核传递。这样在处理较多数据时效率不是很高,而让多个进程共享原创 2014-11-11 08:53:23 · 3356 阅读 · 1 评论