【问题标题】:How to know that a process ends with "out of memory" error?如何知道进程以“内存不足”错误结束?
【发布时间】:2022-08-04 01:23:26
【问题描述】:

我有一个 C++ 程序,它在一个单独的进程中运行另一个程序,它进行大量计算。

我怎么知道这个其他进程是否因为“内存不足”错误而崩溃?

我使用QProcessQLocalSocket

  • 因OOM而崩溃或退出?如果它在这种情况下退出,那么您可以返回特定的返回码以帮助您的父进程了解该情况
  • 我的进程被 OOM - Killer 杀死,我如何从我的 cpp 代码中找到它?

标签: c++ qt


【解决方案1】:

您无法获取 QProcess 执行的正在运行的进程崩溃的原因。您只能被告知它已完成(正常或崩溃)或执行期间发生错误。

所有这些都可以通过处理 QProcess 信号来处理

  1. void QProcess::errorOccurred(QProcess::ProcessError error)
  2. void QProcess::finished(int exitCode, QProcess::ExitStatus exitStatus = NormalExit)

    请参阅official documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-16
    • 2020-04-02
    • 2021-05-09
    • 1970-01-01
    • 2011-11-30
    • 2020-04-09
    • 2013-11-17
    • 2015-09-20
    相关资源
    最近更新 更多