无名通道

匿名管道是计算机进程间的一种单工先进先出通信机制。全双工通信通常需要两个匿名管道。 典型场景为父进程创建匿名管道,然后创建一批子进程继承了这个匿名管道。由于这是未命名的管...

匿名管道是计算机进程间的一种单工先进先出通信机制。全双工通信通常需要两个匿名管道。

典型场景为父进程创建匿名管道,然后创建一批子进程继承了这个匿名管道。由于这是未命名的管道,只能在本地计算机中使用,而不可用于网络间的通信。匿名管道并不支持异步读、写操作。

Unix

管道 (Unix)是类Unix系统上使用极其广泛的进程间传统通信机制。使用 系统调用创建新的管道并返回一对文件描述符指向管道的读终端与写终端。

Windows操作系统

使用创建匿名管道。使用与函数来读写管道。读写操作总是阻塞式。新建进程可继承管道句柄。

读管道时收到一个end-of-file,意味着管道的写端句柄已经关闭。

例子

// 父进程 #include <windows.h> int main() { STARTUPINFO si; PROCESS_INFORMATION pi; char ReadBuf[100]; DWORD ReadNum; HANDLE hRead; // 管道读句柄 HANDLE hWrite; // 管道写句柄 BOOL bRet = CreatePipe(&hRead, &hWrite, NULL, 0); // 创建匿名管道 if (bRet == TRUE) printf("成功创建匿名管道! "); else printf("创建匿名管道失败,错误代码:%d ", GetLastError()); HANDLE hTemp = GetStdHandle(STD_OUTPUT_HANDLE);// 得到本进程的当前标准输出 SetStdHandle(STD_OUTPUT_HANDLE, hWrite);// 设置标准输出到匿名管道 GetStartupInfo(&si); // 获取本进程的STARTUPINFO结构信息 bRet = CreateProcess( // 创建子进程 NULL, // No module name (use command line) (LPSTR)(LPCSTR)"Client.exe", // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE 0, // No creation flags NULL, // Use parent's environment block NULL, // Use parent's starting directory &si, // Pointer to STARTUPINFO structure &pi ) // Pointer to PROCESS_INFORMATION structure if (bRet == TRUE) printf("成功创建子进程! "); else printf("创建子进程失败,错误代码:%d ", GetLastError()); SetStdHandle(STD_OUTPUT_HANDLE, hTemp); // 恢复本进程的标准输出 CloseHandle(hWrite); // 关闭写句柄 while (ReadFile(hRead, ReadBuf, 100, &ReadNum, NULL))// 读管道直至管道关闭 { ReadBuf[ReadNum] = '0'; printf("从管道[%s]读取%d字节数据 ", ReadBuf, ReadNum); } if (GetLastError() == ERROR_BROKEN_PIPE) // 输出信息 printf("管道被子进程关闭 "); else printf("读数据错误,错误代码:%d ", GetLastError()); return 0; }

//子进程的标准输出实际上已经重定向到匿名管道写端 #include <stdio.h> int main(int argc, char* argv[]) { for (int i = 0; i < 100; i++) // 发送一些数据到标准输出和标准错误 { printf("i = %d ", i); // 打印提示 cout << "标准输出:" << i << endl; // 打印到标准输出 cerr << "标准错误:" << i << endl; // 打印到标准错误 } return 0; }

参见

  • 命名管道
  • 匿名命名管道
  • 管道 (Unix)

本文来自作者[夜寄易]投稿,不代表上善若水立场,如若转载,请注明出处:https://www.tao1949.com/wiki/202508-3919.html

(10)

文章推荐

  • 必备科技“微乐麻将原来是有挂吗”其实确实有挂

    微乐麻将原来是有挂吗是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微下载使用。微乐麻将可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自定义微乐麻将系统规律,只需要输入自己想要的开挂功能,一键便可以生成出

    2025年08月16日
    0
  • 介绍一款“微乐捉鸡麻将万能开挂器”原来确实有挂

    微乐捉鸡麻将万能开挂器是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微下载使用。微乐麻将可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自定义微乐麻将系统规律,只需要输入自己想要的开挂功能,一键便可以生成

    2025年08月16日
    0
  • 分析实测“和尚微乐麻将怎么开挂”确实能开挂

    网上科普有关和尚微乐麻将怎么开挂”话题很是火热,小编也是针对微乐麻将的技术支持和安全性寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。您好,和尚微乐麻将怎么开挂这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很

    2025年08月16日
    0
  • 解析分享“微乐作弊挂安装别人能看出来吗”分享用挂教程

    网上科普有关“微乐作弊挂安装别人能看出来吗”话题很是火热,小编也是针对微乐麻将的技术支持和安全性寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。您好,微乐作弊挂安装别人能看出来吗这款游戏可以开挂的,确实是有挂的,

    2025年08月16日
    0
  • 实测教程“多乐跑得快可以开挂吗”详细分享装挂步骤

    您好:多乐跑得快可以开挂吗这款游戏是可以开挂的,软件加微信【添加图中微信】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服微信

    2025年08月16日
    0
  • 必备科技“人皇大厅能开挂吗”(确实是有挂)

    人皇大厅能开挂吗是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微下载使用。手机打牌可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自定义手机打牌系统规律,只需要输入自己想要的开挂功能,一键便可以生成出手机

    2025年08月16日
    0
  • 教程分享“wepoker作弊透视挂”确实是有挂

    家们!今天小编来为大家解答wepoker作弊透视挂这个问题咨询软件客服徽信 的挂在哪里买很多人还不知道,现在让我们一起来看看吧!一、记牌器怎么全显示你需要获得记牌器才能全部显示,否则只显示前面几张牌的数据。如下图所示:获取开挂的软件方法如下:可

    2025年08月16日
    0
  • 给大家科普一下“开心泉州麻将有挂吗 是不是真的”详细分享装挂步骤

    开心泉州麻将有挂吗是不是真的是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微下载使用。开心泉州麻将有挂吗是不是真的可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自定义大贰小程序系统规律,只需要输入自

    2025年08月16日
    0
  • 玩家必备攻略“wepoker透视底牌”(确实是有挂)

    wepoker透视底牌是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加入我们(QQ群聊)免费测试,先看效果下载使用。手机打牌可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自定义手机打牌系统规律,只需要输入自

    2025年08月16日
    0
  • 内幕揭晓“微乐跑得快如何开挂”原来确实有挂

    家们!今天小编来为大家解答微乐跑得快如何开挂这个问题咨询软件客服徽信 的挂在哪里买很多人还不知道,现在让我们一起来看看吧!一、记牌器怎么全显示你需要获得记牌器才能全部显示,否则只显示前面几张牌的数据。如下图所示:获取开挂的软件方法如下:可以通过

    2025年08月16日
    0

发表回复

本站作者后才能评论

评论列表(4条)

  • 夜寄易
    夜寄易 2025年08月11日

    我是上善若水的签约作者“夜寄易”!

  • 夜寄易
    夜寄易 2025年08月11日

    希望本篇文章《无名通道》能对你有所帮助!

  • 夜寄易
    夜寄易 2025年08月11日

    本站[上善若水]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 夜寄易
    夜寄易 2025年08月11日

    本文概览:匿名管道是计算机进程间的一种单工先进先出通信机制。全双工通信通常需要两个匿名管道。 典型场景为父进程创建匿名管道,然后创建一批子进程继承了这个匿名管道。由于这是未命名的管...

    联系我们

    邮件:上善若水@sina.com

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们