无名通道

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

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

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

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://xkxky.cn/zsfx/202507-1950.html

(3)

文章推荐

  • 曼尼普尔冲突导致五人遇难

      印帕尔,9月7日(IANS):周六,曼尼普尔邦的暴力冲突持续,导致一名老年Meitei社区居民遇害,作为报复,四名库基武装分子在吉里巴姆地区被击毙。新的暴力事件发生在与阿萨姆邦南部接壤的吉里巴姆地区,包括Serou、Moljol、Rashidpur和Nung

    2025年08月05日
    0
  • 巴基斯坦遭遇暴雨,24人遇难,飓风即将袭击沿海地区

      新德里,8月31日(IANS):根据巴基斯坦气象局(PMD)的消息,飓风阿斯纳并未对沿海地区构成直接威胁,但预计周六信德省和俾路支省的多个城市将遭遇强风和暴雨。周五,巴基斯坦的季风暴雨造成了严重破坏,导致近24人遇难。沿海地区正在为飓风的影响做好准备。

    2025年08月05日
    0
  • 惠灵顿市议会发出警示:机场扩建计划或将寻求资金支持

      威灵顿市议会停止出售34%的机场股份。长期计划将不得不修改,可能涉及大幅削减资本支出。首相说政府是…关心并会毫不犹豫地介入。威灵顿市议会被警告,作为股东,它可能会被要求为机场的扩建计划提供数亿美元。威灵顿机场的2040年总体规划包括10亿美元的资本投资,用于航站楼

    2025年08月05日
    0
  • 梅根·马克尔与哈里王子联手反对查尔斯国王的种族歧视指控

      奥米德·斯考比的传记《终局:王室内部和君主制的生存之战》最近被译成荷兰语。据说查尔斯国王和威尔士王妃发表了种族主义言论,这再次使王室受到抨击。远离这个问题的是哈里王子和梅根·马克尔,他们正在抚养阿奇王子和莉莉贝特公主。一直关注此案的人都知道,有两名未透露姓名的王室成员在阿奇王子出

    2025年08月05日
    0
  • 哈里王子蜜月后重返英国基地,投身狩猎活动

      离开英国四年后,哈里王子渴望在英国拥有一个基地。由于工作原因,苏塞克斯公爵经常往返于英国和他目前位于加州的住所,他想在自己的祖国拥有一栋房子。王室专家汤姆·奎因在接受《镜报》独家采访时表示:“随着时间的流逝,哈里王子开始怀念他在英国的旧生活。不可避免的是,蜜月期即将结束,在这段

    2025年08月05日
    0
  • 早产婴儿的玩具兔子重达3磅,成为他最爱的玩具的两倍

      一个出生时比他的泰迪熊还小的婴儿现在“茁壮成长”,是他心爱玩具的两倍大。雅各布·布莱克来自约克郡巴恩斯利,当他的母亲劳拉·科普利在他31周大的时候生下他时,他的体重只有3磅3盎司。33岁的劳拉在一周前羊水破裂后被紧急送往医院,但她被送回家休息。今年3月23日,她在巴恩斯利医院

    2025年08月05日
    0
  • 救护车待命,道路修复中,工人将被安全送往医院

      在距离锡尔凯拉隧道废墟仅剩5米时,周二,救援人员正准备将被困工人迅速送往医院进行治疗。在距离Silkyara约30公里的Chinyalisaur社区卫生中心,为工人们准备了一个独立的病房,配备41张氧气床。过去两周,由于重型车辆频繁通行,

    2025年08月05日
    0
  • 即将发布的计划将增强工人权益

    这些措施包括禁止剥削性的零时工合同。政府将于今天宣布工人新权利的细节,包括禁止剥削性的零时工合同和“不择手段”的解雇和重新雇用做法的计划,政府称这将使数百万工人受益。部长们称《就业权利法案》是一代人以来对工作场所薪资和生产率的最大提升。

    2025年08月05日
    0
  • 悉尼犹太博物馆外三男子因涉嫌行纳粹礼被警方拘留

    三名男子在悉尼犹太博物馆外敬礼Nazi后被捕。警方在中午过后被叫到达灵赫斯特博物馆后逮捕了这两名男子。一位博物馆发言人表示,没有任何工作人员面临持续的危险发言人说:“At博物馆里没有任何人处于危险之中,博物馆感谢其安全承包商的持

    2025年08月05日
    0
  • 国际货币基金组织的Gita Gopinath对财富税表达担忧,呼吁加强资本所得税的实施

    国际货币基金组织(IMF)第一副总裁吉塔·戈皮纳特(GitaGopinath)表示,该全球机构更倾向于累进税制。在接受采访时,身在印度的戈皮纳特表示,应该更好地实施资本所得税,财产税可以适当地纳入税收体系。“至于财富税,还有一些额外的复杂因素。例如,对很多人来说

    2025年08月05日
    0

发表回复

本站作者后才能评论

评论列表(4条)

  • 天巧
    天巧 2025年07月29日

    我是时能五金的签约作者“天巧”!

  • 天巧
    天巧 2025年07月29日

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

  • 天巧
    天巧 2025年07月29日

    本站[时能五金]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 天巧
    天巧 2025年07月29日

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

    联系我们

    邮件:时能五金@sina.com

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

    关注我们