无名通道

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

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

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

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://wap.tao1949.com/wiki/202508-3919.html

(2)

文章推荐

  • 最新研究揭示皮肤DNA检测的新发现

      一项开创性的新型DNA取证技术正在寻找一种可靠的方法来测量嫌疑人的皮肤和其他细胞的自然脱落程度,以补充和比较在犯罪现场收集的证据。使用弗林德斯大学开发的一种新的细胞染色技术,法医科学专家对100人进行了测试,以确认人们是如何脱落不同水平的触摸

    2025年08月12日
    0
  • 科普一下“九酷大厅作弊软件”挂辅助教程

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

    2025年08月12日
    0
  • 当地足球迷与拯救他生命的英雄重聚

      在万提纳,一位父亲在唐维尔足球俱乐部观看儿子的训练时突发心脏骤停,幸运的是他得以幸存。上个月,53岁的保罗·戴曼迪斯在踢球时心脏停止了跳动。保罗对护理人员梅尔·尤根斯表达了感激之情。当时,20岁的迈克尔·沃尔

    2025年08月12日
    0
  • 必看教程“手机麻将开挂神器下载软件”附开挂脚本详细步骤

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

    2025年08月12日
    0
  • 威廉王子与凯特王妃的500万英镑温莎豪宅:阿德莱德小屋

    阿德莱德小屋是温莎的二级保护住宅,威尔士王子和公主于2022年夏天搬到了这里。阿德莱德小屋坐落在占地655英亩的温莎庄园的中心,与凯特和威廉在搬到伯克郡之前的肯辛顿宫(KensingtonPalace)拥有20个房间、四层楼高的1A公寓(Apartment1A)不同,阿德莱德小屋

    2025年08月12日
    0
  • 我来教大家“微乐干瞪眼有透视吗怎么玩的”其实真的有挂

    亲,微乐干瞪眼有透视吗怎么玩的这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推。全网独家,诚信可靠,无效果全额退款,本司推出的多功能作 

    2025年08月12日
    0
  • 全球范围内创纪录的热浪影响,从美国延伸至日本和欧洲

    罗马,7月16日——周六,美国数千万人在与危险的高温作斗争,同时欧洲和日本也面临着创纪录的高温预报,这是全球变暖威胁的最新例证。美国国家气象局警告称,从加利福尼亚到德克萨斯州的强烈热浪预计将达到峰值,这将是一个“极端炎热和危险的周末”。据预测,西部地

    2025年08月12日
    0
  • 教程解析“东游麻将开挂神器软件苹果版”分享装挂步骤

    >亲,东游麻将开挂神器软件苹果版这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推。全网独家,诚信可靠,无效果全额退款,本司推出的多功能作&n

    2025年08月12日
    0
  • 因希尔斯堡惨案被捕,西布朗球迷去世后男子被拘

      一名男子因在社交媒体上发帖嘲笑希尔斯堡惨案和西布朗球迷周末在球场死亡而被捕。星期六午餐时间,当悲剧发生在莱平斯巷尾球场时,Baggies前往谢菲尔德星期三参加一场英冠比赛。57岁的马克·汤森在上半场就生病了。尽管得到了医疗救治,但他后来被宣布死亡。西布朗的球迷通知了管理人员和

    2025年08月12日
    0
  • 揭秘科普“欢聚水鱼开挂神器”详细分享开挂

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

    2025年08月12日
    0

发表回复

本站作者后才能评论

评论列表(4条)

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

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

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

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

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

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

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

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

    联系我们

    邮件:上善若水@sina.com

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

    关注我们