我正在用C++的SFML框架制作一个简单的bash终端。我知道如何使用system()fn启动外部进程,但我需要一种将子进程的输出流式传输到当前脚本中的方法。有简单的方法吗?也许使用了一个fstream破解?我正在使用Unix。
您需要使用pipe()s-。基本思想是fork(),然后将文件描述符0(stdin)、1(stdout)和2(stderr)分别复制到特定的管道中,然后在fork的"main"分支中等待pid(),直到在"child"分支上获得WIFEXITED
。