【问题标题】:Is there a C++ function to suspend of resume a child process?是否有 C++ 函数可以暂停恢复子进程?
【发布时间】:2021-03-22 22:30:41
【问题描述】:

有没有办法使用 C++ 暂停和恢复进程?今天,我创建了一个迷你 shell,它将停止一些后台进程以执行一个新的前台进程。 谢谢,

【问题讨论】:

  • 不是标准C++,你必须使用系统库。

标签: c++ multithreading powershell shell process


【解决方案1】:

没有。 C++ 语言完全不知道进程的概念,因此也不知道子进程的概念,因此没有任何函数1 可以直接与进程交互。

1 除了继承自 C 标准库的std::system,它以实现定义的方式将字符串传递给主机系统的命令处理器,实际上通常由创建子进程。

【讨论】:

    【解决方案2】:

    你在标签中说的是 Powershell,所以我假设是 Windows。

    如果你有一个进程的句柄,那么你可以对那个进程做一些事情。您可以做的事情的列表记录在 MSDN 中。在这种情况下,您需要获取进程中各个线程的句柄,以便暂停线程:https://docs.microsoft.com/en-us/windows/win32/procthread/suspending-thread-execution

    在 POSIX 中执行此操作要容易一些。您只需向目标进程发送一个 SIGSTOP 信号。然后它及其所有线程将停止运行,直到您发送 SIGCONT。

    【讨论】:

      猜你喜欢
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多