一、管道实现进程间通讯主要的理论知识 1.什么是管道以及分类 管道是两个头的东西,每一个头各连接一个进程或者同一个进程的不同代码,依照管道的类别分有两种管道,匿名的和命名的;依照管道的传输方向分也能够分成两种,单向的双向的。依据管道的特点,命名管道通经常使用在网络环境下不同计算机上执行的进程之间.....
分类:
系统相关 时间:
2014-10-21 19:26:40
阅读次数:
527
有名管道(FIFO)命名管道也被称为FIFO文件,是一种特殊的文件。由于linux所有的事物都可以被视为文件,所以对命名管道的使用也就变得与文件操作非常统一。(1)创建命名管道用如下两个函数中的其中一个,可以创建命名管道。#include #include int mkfifo(const char...
分类:
系统相关 时间:
2014-10-21 12:14:49
阅读次数:
347
一 消息队列的介绍消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。◆影...
分类:
系统相关 时间:
2014-10-21 12:00:18
阅读次数:
262
范德萨父前一节学习了无名管道,这节学习命名管道。
二命名管道
无名管道只能用来在父子进程或兄弟进程之间进行通信,这就给没有亲缘关系的进程之间数据的交换带来了麻烦,解决这个问题就是本节要学习的另一种管道通信:命名管道。
命名管道也被称为FIFO文件,FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要...
分类:
系统相关 时间:
2014-10-16 02:04:31
阅读次数:
305
进程间:管道,消息队列,信号,共享内存,套接字进程间通信的方法主要有以下几种: (1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 (2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外...
分类:
编程语言 时间:
2014-10-12 20:26:08
阅读次数:
228
消息队列1)消息队列的介绍消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长...
分类:
系统相关 时间:
2014-10-11 15:04:05
阅读次数:
315
通常的管道只能连接相关的进程。常规管道由进程创建,并由最后一个进程关闭。使用命名管道可以连接不相关的进程,并且可以独立于进程的存在。下面是由shell实现的基于FIFO(命名管道)的时间/日期服务的服务器和客户端程序。1,服务器程序#! /bin/sh#time server while true....
分类:
系统相关 时间:
2014-10-10 19:31:54
阅读次数:
211
FIFO又被称为命名管道,未命名的管道只能在两个相关的进程之间使用,而这两个相关的进程还要有一个共同创建了它们的祖先进程,但是FIFO,不相关的进程之间也能交换数据。 ????FIFO是一种文件类型。通...
分类:
其他好文 时间:
2014-10-10 01:36:43
阅读次数:
419
有名管道(FIFO)命名管道也被称为FIFO文件,是一种特殊的文件。由于linux所有的事物都可以被视为文件,所以对命名管道的使用也就变得与文件操作非常统一。(1)创建命名管道用如下两个函数中的其中一个,可以创建命名管道。#include #include int mkfifo(const char...
分类:
系统相关 时间:
2014-10-09 19:28:37
阅读次数:
352
问题1. 使用navicat连接本地sqlserver,报错“命名管道提供程序无法打开与 sql server 的连接 [2]”解决:参考本篇文章
分类:
数据库 时间:
2014-10-09 14:59:13
阅读次数:
193