首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows IPC:我可以通过匿名管道发送二进制数据吗?

Windows IPC:我可以通过匿名管道发送二进制数据吗?
EN

Stack Overflow用户
提问于 2012-11-22 22:02:33
回答 2查看 909关注 0票数 0

我需要从子进程向父进程发送数据。这些数据中的一些是HTML、纯文本等,但也可能需要发送图像数据、zip文件数据等。

据我所知,匿名管道使用子进程标准输入和标准输出。传统上,stdin和stdout只传递文本数据:使用这种机制发送不可打印的字符会有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-23 04:52:38

匿名管道和标准输入/输出之间没有关系。因为一个进程只有一个stdin/out,所以您可以这样为每个进程创建一个匿名管道,这听起来很愚蠢,不是吗?您可以将stdin/从子进程重定向到管道,是的。但是,如果子进程能够通过另一种方式(如日志文件或网络活动)报告自身,则不必这样做。对CreatePipe的调用提供了读写句柄,如何使用它们由您决定。发送任意二进制数据确实是可能的。匿名管道在这方面与命名管道没有什么不同。

票数 2
EN

Stack Overflow用户

发布于 2012-11-23 05:15:24

即使您选择使用stdin/stdout重定向将管道句柄传递给子进程,只要子进程使用Windows API而不是C运行时库函数发送数据,也不会有任何问题。

也就是说,WriteFile将完美地工作,但printf不是一个好主意。

您可以使用GetStdHandle获取管道的句柄,以便与Windows API函数一起使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13514366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档