`
zerosoul
  • 浏览: 25507 次
  • 性别: Icon_minigender_1
  • 来自: Earth
社区版块
存档分类
最新评论

CreatePipe 函数

阅读更多
创建管道共享数据
//创建匿名管道 
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函数并利用读取句柄来实现。
分享到:
评论

相关推荐

    操作系统上机报告.doc

    在 OnPipeCreate() 函数中,我们使用 CreatePipe 函数创建匿名管道,并将其句柄保存在 hRead 和 hWrite 变量中。在 OnPipeRead() 函数中,我们使用 ReadFile 函数从匿名管道中读取数据,而在 OnPipeWrite() 函数中,...

    自己写一个webserver支持CGI函数

    * 使用CreatePipe函数创建管道,并将其与CGI程序关联。 * 使用CreateProcess函数创建子进程,并将CGI程序执行其中。 * 使用WriteFile函数将数据写入管道中。 * 使用ReadFile函数从管道中读取结果。 通过这些步骤,...

    匿名管道_fill398_Vc_

    在Windows操作系统中,匿名管道通常使用CreatePipe函数创建,该函数返回两个句柄,分别对应读端和写端。在描述中提到的"填充结构体SECURITY_ATTRIBUTES",这涉及到Windows API的安全特性。SECURITY_ATTRIBUTES结构体...

    VC利用管道和多线程实现进程间通信

    在VC++环境下,可以使用CreatePipe函数创建管道,使用WriteFile函数写入信息到管道中,使用ReadFile函数读取信息从管道中。 在VC++环境下实现进程间通信的步骤包括:首先,创建一个父进程Parent,并在其中创建一个...

    匿名管道用于进程间通信

    在Windows API中,匿名管道通常通过CreatePipe函数创建,并使用ReadFile和WriteFile函数进行读写操作。这个压缩包中的示例可能是演示如何在C或C++程序中实现这一功能。 首先,我们需要理解什么是匿名管道。匿名管道...

    VC下管道实现的例子mfc开发

    在Windows系统中,管道通过CreatePipe函数创建,该函数创建一对管道端点,一个用于读取,另一个用于写入。 在MFC中,我们可以使用CWinApp或CWinThread类的成员函数来调用CreatePipe,创建管道。然后,我们可以通过...

    VC++ 管道通讯应用

    在VC++中,我们可以使用CreatePipe函数创建管道,然后通过CreateProcess或者CreateFile函数分别在发送方和接收方建立对管道的访问。 1. **管道基础**:管道是一种半双工的通信方式,数据只能单向流动,但可以有两个...

    基于匿名管道的cmd回显

    在Windows系统中,我们可以使用CreatePipe函数创建管道,CreateProcess或CreateProcessAsUser来启动新的cmd进程,并通过WriteFile和ReadFile来完成数据的读写操作。 具体实现步骤如下: 1. 创建匿名管道:在父进程...

    C++ 匿名管道程序测试源代码

    在Windows系统中,通常使用CreatePipe函数来创建匿名管道。 在C++中,创建匿名管道需要使用Windows API。首先定义一个SECURITY_ATTRIBUTES结构体,这个结构体包含了管道的安全属性,比如是否允许继承句柄。通常,...

    操作系统实验报告(包括线程,进程,文件系统管理,linux+shell简单命令).pdf

    * 进程通信:使用匿名管道实现父子进程之间的通信,CreatePipe函数创建匿名管道,WriteFile函数向管道中写入数据,ReadFile函数从管道中读取数据。 * 进程控制块:显示父子进程的通信信息和相应的应答信息。 二、...

    进程间通过匿名管道通信实例

    在Windows系统中,匿名管道由CreatePipe函数创建,并通过继承来传递给子进程。 下面我们将详细讲解实现这个实例的步骤: 1. **创建匿名管道**:在父进程中,使用CreatePipe函数创建匿名管道。这个函数会返回两个...

    windows API进程间的通信

    在父进程中,我们使用CreateProcess函数创建子进程,并使用CreatePipe函数创建管道,用于父进程和子进程之间的通信。 2. 子进程的程序:在子进程中,我们使用WaitForSingleObject函数等待父进程的消息,并使用...

    匿名管道程序

    1. 创建管道:使用CreatePipe函数创建一对管道句柄,一个用于读取(ReadHandle),一个用于写入(WriteHandle)。 2. 创建子进程:通过CreateProcess函数创建子进程,并将写入管道的句柄继承给子进程。子进程可以...

    易语言DOS管道技术源码

    创建管道”的调用,这表示调用了Windows API中的CreatePipe函数,用于创建一个管道对象。 管道的基本工作流程如下: 1. 创建管道:使用API函数创建两个管道端口,一个用于读取(Read End),另一个用于写入(Write ...

    guandao.rar_ 管道 通信_VC 管道_多进程_管道通信_管道通信c

    在VC++中,我们可以使用CreatePipe函数创建管道,然后用CreateProcess或Spawn*系列函数创建新进程。创建管道时,需要指定管道的方向(读写),并为读端和写端分配句柄。接着,新进程可以通过打开已创建的管道句柄...

    VC实现进程之间的通讯

    在VC中,可以使用CreatePipe函数创建管道,并通过ReadFile和WriteFile进行读写操作。 2. **共享内存**:共享内存允许进程直接访问同一块内存区域,速度较快。在VC中,可以使用CreateFileMapping和MapViewOfFile函数...

    vc做的一个进程间通信的程序

    VC++中可以使用CreatePipe函数创建管道,并通过ReadFile和WriteFile函数进行读写操作。 2. **命名管道(Named Pipes)**:命名管道与普通管道相似,但增加了命名功能,使得不同进程可以通过名字找到并连接到同一个...

    VC 管道获取Cmd命令输出

    1. **创建管道**:使用CreatePipe函数创建一个读写两端的管道。这个函数会返回两个句柄,一个用于读取(ReadHandle),另一个用于写入(WriteHandle)。 2. **创建子进程**:使用CreateProcess函数启动Cmd进程,并...

    simple communication code

    创建和管理管道通常涉及CreateNamedPipe或CreatePipe函数,以及ReadFile和WriteFile函数的使用。管道通信适用于在同一台计算机上运行的进程间的通信,提供了低延迟和高效率的数据交换。 这个"simple communication ...

    跨平台实现异步执行命令,类似popen,可同时读写

    在Windows中,我们可以使用CreateProcess和CreatePipe函数来启动新的进程并与之通信。CreateProcess可以创建一个新的进程,而CreatePipe则能创建管道进行数据传输。在Unix-like系统中,我们可以使用fork和exec函数...

Global site tag (gtag.js) - Google Analytics