gpt4 book ai didi

c++ - 使用 CreateProcess 时从进程返回错误代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:00:27 24 4
gpt4 key购买 nike

所以我正在为一些代码做一个自动化测试。有一个名为“cmdLineProc”的命令行运行的可执行文件。

我用 C++ 编写测试程序(不使用 Python 或因为我们使用的 API 可以加快这些测试的速度)。命令行参数在测试中作为字符串生成并传递给使用 CreateProcess 运行 cmdLineProc 的函数。这很好用。我可以调用 cmdLineProc,它可以工作并且测试通过。但仅当没有返回错误时。

在测试时,我发现需要检查事情是否也在应该发生的时候发生了故障。在这些情况下,cmdLineProc 会返回一个错误值。

因此,如果我在命令行上运行带有使其失败的参数的 cmdLineProc,我会收到一条消息,显示“错误,失败:-3”,其中 -3 是错误代码。但是当我使用 CreateProcess 通过 C++ 测试运行它时,我遇到了问题。 CreateProcess 只是失败并返回 -1,表示它失败的代码。它没有说明失败的原因。我使用 GetExitCodeProcess 获取 cmdLineProc 的终止状态。

有人知道是否可以从使用此方法返回的 cmdLineProc 中获取错误值吗?如果没有,有谁知道我将如何实现这个?

最佳答案

GetExitCodeProcess 返回运行进程的退出代码。如果您在运行程序时看到另一个错误显示,那么创建的进程只是将另一个错误写入标准输出。

在这种情况下,您必须解析创建的进程的输出。

您可以看到这是如何完成的 here .

关于c++ - 使用 CreateProcess 时从进程返回错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com