用c ++包装可执行文件的输入和输出

时间:2012-01-02 20:19:31

标签: c++

java(Minecraft)中有一个程序,对于它的服务器部分,它在终端中打开并提示用户输入命令,并提供有关加载进度和其他内容的反馈。如何制作一个c ++“包装器”来自动向终端发送命令并接收响应?

我可以使用GUI元素自动执行诸如say和kick之类的命令。我正在使用OSX Lion运行mac。

2 个答案:

答案 0 :(得分:2)

它可能是读写stdin / stdout。您应该在c ++中查找执行二进制文件(在本例中为java.exe)以及如何读取和写入它。或者,您可以使用Java编写一个包装器,使您无需解析文本输出即可控制。

答案 1 :(得分:0)

这个问题的答案取决于操作系统,因为不同的系统使用不同的方法来处理标准的输入和输出通道。在UNIX系统上你要创建一个管道(2)(如果你想分别捕获标准输出和标准错误,则为两个),fork(2)“server”,使用close(2)和dup(2)来放置各种文件描述符到位,然后execve(2)实际程序。在此之后,您可以读/写各种描述符。