C++ system()函数 - 如何收集已发出命令的输出?

msp*_*err 4 c++ popen

我正在使用C++ system()函数运行一些命令:

int system ( const char * command );
Run Code Online (Sandbox Code Playgroud)

如何从发出的命令中收集标准输出?

具体来说,我想收集已发出命令的输出(例如,发出命令的目录列表输出dir).

Emp*_*ian 15

您是在寻找已执行命令的返回值(如"退出状态"),还是其输出(如"打印的内容")?

如果是后者,请使用popen()pclose()不是.

如果是前者,请查看返回值system()(并使用信息中的waitpid()信息来解释它).


pho*_*bus 8

system()返回一个int,所以抓住它:int rvalue = system(command);

我相信system()返回的确切细节是系统特定的.

  • 该int的值是命令的返回值.也许你的意思是你想要将输出收集到其中一个像stdout这样的流? (2认同)