我有以下代码:
FILE* pipe = _popen(command_.c_str(), "r");
if (!pipe)
{
throw std::runtime_error{
"Subprocess::Run: error starting [" + command_ + "]"
};
}
std::array<char, 512> buffer;
while (!feof(pipe))
if (fgets(buffer.data(), buffer.size(), pipe) != NULL)
output_.append(buffer.data());
exit_code_ = _pclose(pipe);
这可以获取已执行命令的标准输出和退出代码;
当我使用无效命令(类似"dfakjhfasidufha"
)运行此代码时,我的控制台中会显示一条错误消息:
'dfakjhfasidufha' is not recognized as an internal or external command,
operable program or batch file.
如何取消此消息?
答案 0 :(得分:0)
消息来自Windows(我想),所以当出现问题时,它是默认模式给用户。买你可以通过重定向到nul来摆脱这个。类似于你的命令&gt; nul 2&gt; NUL