2012-03-01 37 views
1

我正在与C++的SFML框架一个简单的bash终端。我知道如何使用system()函数开始一个外部进程,但我需要一种方法将子进程的输出流式传输到当前脚本中。有没有简单的方法来做到这一点?也许使用fstream黑客?我正在使用Unix。管外部进程的输出转换成运行C++脚本

+0

哪些操作系统?在Linux上可能会做你想做的事 – vmpstr 2012-03-01 21:01:02

+0

这是一个POSIX函数,不仅在Linux上。 ;-) – DejanLekic 2012-03-01 21:04:21

+1

@DejanLekic我宁可比抱歉安全:)我能要求是,它在我的Linux操作系统,但感谢指正! – vmpstr 2012-03-01 21:08:51

回答

2

您需要使用pipe()秒 - 。其基本思路是,以fork()然后dup2()文件描述符0(标准输入),1(输出)和分别为2(错误)到特定的管道和在叉你的“主”分支然后waitpid(),直到你得到一个“孩子”分支上的WIFEXITED