什么是在C++中执行外部程序并获取其返回代码的简单、优雅且有效的跨平台方法?
int execute(std::string const &path, std::vector<std::string> const &arguments = {})
{
//...
}
由于我们需要等待被调用的程序完成后才能继续执行,所以被调用的程序应该使用我们程序的输入/输出/错误流。如果由于任何原因 path
不可执行,只需抛出异常(例如 std::invalid_argument
)。
显而易见,不要使用 system()
。
system
? - набиячлэвэли