隐秘通道

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

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

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

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://yrqmq.cn/jyfx/202507-1716.html

(7)

文章推荐

  • 以色列人对哈马斯史无前例的袭击感到震惊和震惊

    在以色列南部靠近动荡的加沙边境地区,以色列人已经习惯了以色列和哈马斯武装分子之间的轮番战斗,以至于空袭警报的哀号已经成为一种可怕的常规。但这一次,哈马斯动摇了他们钢铁般的神经。以色列南部的居民说,星期六发生的前所未有的地面袭击是一场噩梦,战斗人员乘坐卡车、船只和

    2025年07月03日
    6
  • 哈里王子与梅根·马克尔在紧急会议中遭遇冷遇,愤然离场

    哈里王子和梅根·马克尔决定在2020年辞去王室工作,搬到大洋彼岸的美国,这在当时可能令人震惊。在他们离开王室的几个月前,苏塞克斯公爵在接受英国独立电视台采访时承认,他和他的兄弟威廉王子“走在不同的道路上”,暗示他们的关系已经破裂。他说:“我们不像以前那样经

    2025年07月14日
    4
  • 哈马斯拒绝停火协商,重申7月提案的重要性

    早些时候,埃及、卡塔尔和美国呼吁以色列和哈马斯在8月14日至15日恢复关于停火条款的讨论。三国领导人表示,他们准备提出达成协议的最终提案。Axios还报道称,哈马斯援引了新的情报以色列总理内塔尼亚胡(BenjaminNetanyahu)最近提出的条件、哈马斯政治领袖

    2025年07月21日
    5
  • 俄罗斯士兵在前线“开枪自杀”,弗拉基米尔·普京面临危机

    弗拉基米尔•普京(VladimirPutin)和他的将军们可能要担心的不仅仅是乌克兰人在前线造成的伤亡,因为新泄露的文件显示,克里姆林宫自己的士兵可能正在自杀。根据乌克兰军队在8月份突然入侵俄罗斯库尔斯克地区时缴获的文件,俄罗斯军方领导人担心袭击和他们自己的士气。

    2025年07月28日
    5
  • 一种常见的食用染料,能使皮肤和肌肉暂时透明

    研究人员对活体动物的大脑和身体进行了观察,发现一种常见的食用染料可以使皮肤、肌肉和结缔组织暂时透明。将染料涂在老鼠的腹部,可以通过腹部皮肤清楚地看到它的肝脏、肠道和膀胱,而将染料涂在老鼠的头皮上,科学家们可以看到动物大脑中的血管。斯坦福大学(Stanfo

    2025年07月31日
    4
  • 加拿大政府在纽约公园大道推出一套价值950万美元的豪华公寓

    加拿大总领事曾住在公园大道(ParkAvenue)的一处官邸,用于官方活动,目前正以950万美元的价格出售。DouglasElliman的ThomasAabo表示:“政府在房地产投资组合管理方面正变得更具战略性。”他与Elliman的ErinBoisson

    2025年08月06日
    5
  • 今日热议“透视眼看牌的购买渠道”(确实真的有挂)

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

    2025年08月07日
    4
  • 实测分析“微信里微乐麻将挂免费”确实果然有挂

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

    2025年08月07日
    4
  • 专业讨论“麻将凑成什么可以赢”分享装挂详细步

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

    2025年08月07日
    0
  • 分享一款“腾讯欢乐麻将有没有挂”的确有挂

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

    2025年08月07日
    2

发表回复

本站作者后才能评论

评论列表(4条)

  • 夏予心
    夏予心 2025年07月31日

    我是依然号的签约作者“夏予心”!

  • 夏予心
    夏予心 2025年07月31日

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

  • 夏予心
    夏予心 2025年07月31日

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

  • 夏予心
    夏予心 2025年07月31日

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

    联系我们

    邮件:依然号@sina.com

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

    关注我们