温馨提示×

怎么用CreatePipe函数创建管道

小亿
94
2023-11-22 13:35:30
栏目: 编程语言

CreatePipe函数是用来创建匿名管道的。它的声明如下:

BOOL CreatePipe(
  PHANDLE               hReadPipe,
  PHANDLE               hWritePipe,
  LPSECURITY_ATTRIBUTES lpPipeAttributes,
  DWORD                 nSize
);

参数说明:

  • hReadPipe:输出参数,接收指向管道的读取端的句柄。
  • hWritePipe:输出参数,接收指向管道的写入端的句柄。
  • lpPipeAttributes:指向SECURITY_ATTRIBUTES结构的指针,用于指定管道的安全性。可以设置为NULL,表示使用默认的安全性。
  • nSize:指定管道缓冲区的大小,单位是字节。可以设置为0,表示使用默认大小。

下面是一个使用CreatePipe函数创建管道的示例代码:

#include <windows.h>

int main() {
    HANDLE hReadPipe, hWritePipe;
    SECURITY_ATTRIBUTES sa;
    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor = NULL;
    sa.bInheritHandle = TRUE;

    // 创建管道
    if (!CreatePipe(&hReadPipe, &hWritePipe, &sa, 0)) {
        printf("Failed to create pipe.\n");
        return 1;
    }

    // 使用管道进行进程间通信
    // ...

    // 关闭管道
    CloseHandle(hReadPipe);
    CloseHandle(hWritePipe);
    
    return 0;
}

在创建管道之后,可以使用返回的读取端和写入端句柄进行进程间通信。使用完毕后,需要调用CloseHandle函数关闭管道句柄。

0