管道
概念
概念:可跨进程的队列。实现进程之间的数据传输。
种类:命名管道,匿名管道。
命名管道:主要用于服务器。【双向传输】
匿名管道:主要用于父子进程之间的数据传输。【单向传输】
- 命名管道
命名管道是一种有名字的管道,它可以被多个进程同时使用。命名管道在创建时必须指定一个唯一的名称,其他进程可以通过该名称来访问管道。命名管道使用CreateNamedPipe()函数创建,使用CreateFile()函数打开。命名管道适用于本地进程之间的通信和远程进程之间的通信。
- 匿名管道(父子进程之间的交互)
匿名管道是一种无名的管道,它只能被创建它的进程和它的子进程使用。匿名管道使用CreatePipe()函数创建,它返回两个句柄,一个是读句柄,一个是写句柄。这两个句柄只能被创建它们的进程和它的子进程使用。
在Windows平台上,使用管道的过程与使用文件和套接字类似。进程可以使用WriteFile()函数将数据写入管道,然后使用ReadFile()函数从管道中读取数据。管道也可以使用ReadFile()函数异步读取数据,并使用WriteFile()函数异步写入数据。
创建匿名管道需要注意的事项
创建匿名管道,首先你要明白什么是管道. 管道你可以想象成一个管子.
我们通过这个管子发送数据.
如下图所示: