![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IPC
XDWX
逆水行舟,不进则退。
展开
-
IPC--进程间通信一(管道)
1.什么是管道? 管道分为无名管道和命名管道,本文中如无特殊说明均指无名管道。 管道是Linux支持的最初Unix IPC形式之一,具有以下特点:A.管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;B.只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);C.单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种...转载 2019-03-27 10:11:41 · 131 阅读 · 0 评论 -
IPC--进程间通信二(命名管道)
在前一篇文章中,我们看到了如何使用匿名管道来在进程之间传递数据,这个方式有一个缺陷,就是这些进程必须由一个共同的祖先进程启动,这在不相关的的进程之间交换数据带来了不便。而另一种通信方式——命名管道,可以解决不相关进程间的通信问题。 1.什么是命名管道? 命名管道也被称为FIFO文件,它是一种特殊类型的文件,它在文件系统中以文件名的形式存在,但是它的行为却和之前所讲的没有名字的管道(匿名管道)类似...转载 2019-03-27 10:20:07 · 126 阅读 · 0 评论 -
IPC--进程间通信三(共享内存)
1.什么是共享内存? 共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以...转载 2019-03-27 10:30:05 · 203 阅读 · 0 评论 -
IPC--进程间通信四(信号量)
这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。 一、什么是信号量 为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域...转载 2019-03-27 10:43:54 · 241 阅读 · 0 评论 -
IPC--进程间通信五(信号)
一、什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。 信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的。但它们还可以作为...转载 2019-03-27 11:21:16 · 218 阅读 · 0 评论 -
IPC--进程间通信六(消息队列)
一、消息队列的特点 1.消息队列是消息的链表,具有特定的格式,存放在内存中并由消息队列标识符标识. 2.消息队列允许一个或多个进程向它写入与读取消息. 3.管道和命名管道都是通信数据都是先进先出的原则。 4.消息队列可以实现消息的随机查询,消息不一定要以...转载 2019-03-27 11:36:33 · 168 阅读 · 0 评论 -
IPC--进程间通信七 (socket)
copyright:weishusheng data:2015.5.26 摘要:socket又叫套接字或者插口,它也是进程间通信的一种方式,实际上就是网络上的通信节点,应用程序只需要链接到socket就可以和网络上任何一个通信端点连接、...转载 2019-03-27 11:44:21 · 646 阅读 · 0 评论