将外部进程的输出管道传输到正在运行的脚本C++

Pipe external process's output into running C++ script

本文关键字:运行 脚本 C++ 传输 外部 进程 输出 管道      更新时间:2023-10-16

我正在用C++的SFML框架制作一个简单的bash终端。我知道如何使用system()fn启动外部进程,但我需要一种将子进程的输出流式传输到当前脚本中的方法。有简单的方法吗?也许使用了一个fstream破解?我正在使用Unix。

您需要使用pipe()s-。基本思想是fork(),然后将文件描述符0(stdin)、1(stdout)和2(stderr)分别复制到特定的管道中,然后在fork的"main"分支中等待pid(),直到在"child"分支上获得WIFEXITED