如何在 Mac OS 上用 C++ 实现命名管道?
Posted
技术标签:
【中文标题】如何在 Mac OS 上用 C++ 实现命名管道?【英文标题】:How to implement a named Pipe in C++ on Mac OS? 【发布时间】:2017-04-23 21:59:10 【问题描述】:我正在开发一个我想与 Java 程序(JAR 文件)通信的 c++ 程序。
C++ 将写入管道,而 Java 端将从管道中读出。我已经在 Windows 中实现了这个功能。请不要推荐我如何在这两个程序之间进行通信的替代方式;我已经探索和测试了很多。
【问题讨论】:
欢迎来到 Stack Overflow!请take the tour 了解该网站的运作方式以及此处的主题问题,并相应地编辑您的问题。另见:Why is "Can someone help me?" not an actual question? man 2 mkfifo 你的问题解决了吗? 【参考方案1】:一个简单的方法是从 c++ 程序写入 std::out
并在 java 程序中从 std::in
读取。您使用mkfifo
创建管道,然后启动您的 cpp 程序并将其输出重定向到管道,然后启动您的 java 程序并将其输入重定向到管道。
调用看起来像这样
mkfifo myPipe
./cppProgramm > myPipe&
java javaProgramm < myPipe&
【讨论】:
以上是关于如何在 Mac OS 上用 C++ 实现命名管道?的主要内容,如果未能解决你的问题,请参考以下文章