【问题标题】:Reading system() command error response message读取 system() 命令错误响应信息
【发布时间】:2018-05-15 11:57:41
【问题描述】:

我正在尝试在我的 Windows 10 机器上使用 C++ system() 命令执行应用程序(Coq 编译器)。这是我的代码:

string dospath = "coqc afile.v >> text.txt"; int errorno = system(dospath.c_str());

如果 afile.v 中存在语法/类型错误,Coq 会返回有意义的错误消息。目前,即使 Coq 返回错误,我在 text.txt 中也没有收到任何信息(我在 C++ 应用程序的命令提示符窗口中看到错误消息)。我想将该(任何)消息(由 coqc 返回)作为文件 text.txt 中的字符串或文本读取。我知道有办法使用 pstream.h 来做到这一点,但无法让它们在我的 Windows 机器上工作。

【问题讨论】:

标签: c++ compiler-errors system command-prompt


【解决方案1】:

>> 仅捕获输出流。

使用2>> 可以捕获错误流。

尝试执行:string dospath = "coqc afile.v >> text.txt 2>>error.txt"

【讨论】:

    【解决方案2】:

    您可以像这样将stderr 重定向到stdout

    string dospath = "coqc afile.v >> text.txt 2>&1";
    

    但是有更好的方法来获得像CreateProcess这样的流

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 1970-01-01
      • 2014-05-09
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      相关资源
      最近更新 更多