创建管道共享数据
//创建匿名管道
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
CreatePipe(&hRead,&hWrite,&sa,0);
MSDN:
http://msdn.microsoft.com/en-us/library/aa365152(VS.85).aspx
---------------
CreatePipe Function
创建一个匿名管道,并返回管道的句柄。
语法
C++
BOOL WINAPI CreatePipe(
__out PHANDLE hReadPipe,
__out PHANDLE hWritePipe,
__in_opt LPSECURITY_ATTRIBUTES lpPipeAttributes,
__in DWORD nSize
);
参数
hReadPipe [out]
指向一个变量的指针,该变量接收管道的读取句柄。
hWritePipe [out]
指向一个变量,该变量接收管道的写入句柄。
lpPipeAttributes [in, optional]
一个指向SECURITY_ATTRIBUTES结构的指针,该结构决定返回的句柄是否能被子进程所继承。如果lpPipeAttributs 参数为NULL,则句柄不能继承。
SECURITY_ATTRIBUTES 结构的lpSecurityDescriptor 成员指定了新管道的安全描述符。如果该参数为NULL,管道会获得一个默认的安全描述符。管道的默认安全描述符中的ACL来自创建者的主标记或模拟标记。
nSize [in]
管道缓冲的大小(字节)。这个大小仅是一个建议;系统使用一个和值的缓冲计算机制来计算这个值。如果该参数为0,系统使用默认的缓冲大小。
返回值
如果函数成功,返回非零值;否则返回零值。
备注
该函数创建一个管道,为指定的管道指派存储缓冲的大小。该函数也创建之后用于进程读取或写入缓冲的句柄。
从管道里读取内容,进程通过ReadFile函数并利用读取句柄来实现。
分享到:
相关推荐
在 OnPipeCreate() 函数中,我们使用 CreatePipe 函数创建匿名管道,并将其句柄保存在 hRead 和 hWrite 变量中。在 OnPipeRead() 函数中,我们使用 ReadFile 函数从匿名管道中读取数据,而在 OnPipeWrite() 函数中,...
* 使用CreatePipe函数创建管道,并将其与CGI程序关联。 * 使用CreateProcess函数创建子进程,并将CGI程序执行其中。 * 使用WriteFile函数将数据写入管道中。 * 使用ReadFile函数从管道中读取结果。 通过这些步骤,...
在Windows操作系统中,匿名管道通常使用CreatePipe函数创建,该函数返回两个句柄,分别对应读端和写端。在描述中提到的"填充结构体SECURITY_ATTRIBUTES",这涉及到Windows API的安全特性。SECURITY_ATTRIBUTES结构体...
在VC++环境下,可以使用CreatePipe函数创建管道,使用WriteFile函数写入信息到管道中,使用ReadFile函数读取信息从管道中。 在VC++环境下实现进程间通信的步骤包括:首先,创建一个父进程Parent,并在其中创建一个...
在Windows API中,匿名管道通常通过CreatePipe函数创建,并使用ReadFile和WriteFile函数进行读写操作。这个压缩包中的示例可能是演示如何在C或C++程序中实现这一功能。 首先,我们需要理解什么是匿名管道。匿名管道...
在Windows系统中,管道通过CreatePipe函数创建,该函数创建一对管道端点,一个用于读取,另一个用于写入。 在MFC中,我们可以使用CWinApp或CWinThread类的成员函数来调用CreatePipe,创建管道。然后,我们可以通过...
在VC++中,我们可以使用CreatePipe函数创建管道,然后通过CreateProcess或者CreateFile函数分别在发送方和接收方建立对管道的访问。 1. **管道基础**:管道是一种半双工的通信方式,数据只能单向流动,但可以有两个...
在Windows系统中,我们可以使用CreatePipe函数创建管道,CreateProcess或CreateProcessAsUser来启动新的cmd进程,并通过WriteFile和ReadFile来完成数据的读写操作。 具体实现步骤如下: 1. 创建匿名管道:在父进程...
在Windows系统中,通常使用CreatePipe函数来创建匿名管道。 在C++中,创建匿名管道需要使用Windows API。首先定义一个SECURITY_ATTRIBUTES结构体,这个结构体包含了管道的安全属性,比如是否允许继承句柄。通常,...
* 进程通信:使用匿名管道实现父子进程之间的通信,CreatePipe函数创建匿名管道,WriteFile函数向管道中写入数据,ReadFile函数从管道中读取数据。 * 进程控制块:显示父子进程的通信信息和相应的应答信息。 二、...
在Windows系统中,匿名管道由CreatePipe函数创建,并通过继承来传递给子进程。 下面我们将详细讲解实现这个实例的步骤: 1. **创建匿名管道**:在父进程中,使用CreatePipe函数创建匿名管道。这个函数会返回两个...
在父进程中,我们使用CreateProcess函数创建子进程,并使用CreatePipe函数创建管道,用于父进程和子进程之间的通信。 2. 子进程的程序:在子进程中,我们使用WaitForSingleObject函数等待父进程的消息,并使用...
1. 创建管道:使用CreatePipe函数创建一对管道句柄,一个用于读取(ReadHandle),一个用于写入(WriteHandle)。 2. 创建子进程:通过CreateProcess函数创建子进程,并将写入管道的句柄继承给子进程。子进程可以...
创建管道”的调用,这表示调用了Windows API中的CreatePipe函数,用于创建一个管道对象。 管道的基本工作流程如下: 1. 创建管道:使用API函数创建两个管道端口,一个用于读取(Read End),另一个用于写入(Write ...
在VC++中,我们可以使用CreatePipe函数创建管道,然后用CreateProcess或Spawn*系列函数创建新进程。创建管道时,需要指定管道的方向(读写),并为读端和写端分配句柄。接着,新进程可以通过打开已创建的管道句柄...
在VC中,可以使用CreatePipe函数创建管道,并通过ReadFile和WriteFile进行读写操作。 2. **共享内存**:共享内存允许进程直接访问同一块内存区域,速度较快。在VC中,可以使用CreateFileMapping和MapViewOfFile函数...
VC++中可以使用CreatePipe函数创建管道,并通过ReadFile和WriteFile函数进行读写操作。 2. **命名管道(Named Pipes)**:命名管道与普通管道相似,但增加了命名功能,使得不同进程可以通过名字找到并连接到同一个...
1. **创建管道**:使用CreatePipe函数创建一个读写两端的管道。这个函数会返回两个句柄,一个用于读取(ReadHandle),另一个用于写入(WriteHandle)。 2. **创建子进程**:使用CreateProcess函数启动Cmd进程,并...
创建和管理管道通常涉及CreateNamedPipe或CreatePipe函数,以及ReadFile和WriteFile函数的使用。管道通信适用于在同一台计算机上运行的进程间的通信,提供了低延迟和高效率的数据交换。 这个"simple communication ...
在Windows中,我们可以使用CreateProcess和CreatePipe函数来启动新的进程并与之通信。CreateProcess可以创建一个新的进程,而CreatePipe则能创建管道进行数据传输。在Unix-like系统中,我们可以使用fork和exec函数...