无名通道:隐秘信息传递的新方式

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

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

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

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://xcxmk.com/cshi/202509-2756.html

(5)

文章推荐

  • 马来西亚电子发票转型:提升税收合规性与运营效率的挑战与机遇

      马来西亚正在逐步与越来越多采用电子发票的国家接轨,以应对影子经济问题,提升税收合规性和运营效率。全国范围内推广的连续交易控制(CTC)模式,使得企业、消费者与政府之间的交易实现了几乎实时的数字化传输与处理。尽管现行的电子发票模式已被证明是全面的,但随着明年进入下

    2025年08月09日
    5
  • 阿什顿·库彻与米拉·古妮丝回应分手谣言

      近日,有关阿什顿·库彻与米拉·库妮丝可能分手的传闻在网络上流传,但知情人士表示这完全是谣言。这些猜测的起因是“吹牛老爹”肖恩·库姆斯(SeanCombs)被捕的消息,他与阿什顿是朋友。一位消息人士向《人物》杂志透露:“这完全是无稽之谈。”因为阿什顿与这位饱受争议的音乐

    2025年08月13日
    3
  • 特朗普竞选团队披露伊朗暗杀威胁,情报机构加强保护措施

      唐纳德·特朗普,作为共和党总统候选人,其竞选团队透露,美国情报机构向他简要通报了关于伊朗可能的暗杀威胁。竞选团队在一份声明中指出:“特朗普总统今天早些时候接收了国家情报总监办公室关于伊朗对他实施暗杀的真实且具体的威胁的简报,目的是为了破坏美国的稳定,制造国内混

    2025年08月31日
    3
  • 玩家点评“镇雄小游戏开挂透视”其实真的有挂

    镇雄小游戏开挂透视这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的通过添加客服微:本司针对手游进行匹配,选择我们的四

    2025年09月18日
    5
  • 西汉姆强势反击热刺,精彩对决再现

      英超联赛热刺1分(罗梅罗11分)西汉姆2(鲍文52分,沃德-普劳斯74分)西汉姆联在下半场的两粒进球帮助他们赢得了这场德比战,而热刺的五场不败记录也随之结束。尽管热刺在开局阶段由克里斯蒂安·罗梅罗首开纪录,但随

    2025年09月19日
    5
  • 【郑州锦绣城疫情确诊了吗,河南郑州锦绣城分部】

    11月21日济南槐荫区疫情最新消息(11月21日济南槐荫区疫情最新消息是什么...1、槐荫区:振兴街街道阳光100小区T区1号楼,兴福街道中建锦绣城2期朗园8号楼,玉清湖街道金石鑫小区12号楼,腊山街道大杨新区8号楼划为高风险区;将兴福街道绿地中央广场C1A

    2025年09月23日
    3
  • 【涪陵疫情确诊轨迹公布图,涪陵新冠病例】

    重庆涪陵区疫情最新消息(重庆涪陵最新疫情最新消息)1、月9日病例:11月9日0—24时,重庆涪陵区新增本土确诊病例1例,新增本土无症状感染者4例。截至11月9日24时,重庆涪陵区现有本土确诊病例1例,现有本土无症状感染者5例。病例基本情况:涪陵区确诊病例1,

    2025年09月25日
    5
  • 信阳疫情新增病例多少例(信阳疫情通报)

    你想知道2022年3月31日全国各地的新冠疫情吗?湖北疾控针对新疆巴音郭楞州疫情紧急提示(3月31日)3月31日,新疆巴音郭楞州和硕县报告新增多例新冠肺炎确诊病例和无症状感染者。通过查询相关资料显示,2022年3月广东疫情严重。2022年3月31日广东省新冠

    2025年09月27日
    4
  • 普拉多2700参数,普拉多2700技术参数

    驾驶普拉多2700进藏,动力很肉、油耗很高,期待越高,失望越大让本身就具有不错运动感的车身更加时尚靓丽,更受到年轻人的喜爱。当然,飞度并不是一个样子货,在5L自然吸气发动机中飞度所配备的这款地球梦科技发动机就是出类拔萃的一款,是在自然吸气发动机中参数最为优秀

    2025年09月29日
    3
  • 考斯特图片(新款考斯特图片)

    丰田考斯特12座丰田考斯特20座配置商务车设计丰田考斯特商务车拥有多种车型,包括豪华版、高级版和行政版,它们在外观上有所不同。对于12座和20座车型而言,虽然座位数量不同,但整体设计风格和细节处理均保持一致的高水准。车身颜色与材质:丰田考斯特12座与20座车

    2025年09月29日
    3

发表回复

本站作者后才能评论

评论列表(4条)

  • 美舒
    美舒 2025年09月19日

    我是雨奇号的签约作者“美舒”!

  • 美舒
    美舒 2025年09月19日

    希望本篇文章《无名通道:隐秘信息传递的新方式》能对你有所帮助!

  • 美舒
    美舒 2025年09月19日

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

  • 美舒
    美舒 2025年09月19日

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

    联系我们

    邮件:雨奇号@sina.com

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

    关注我们