【问题标题】:How to kill the process from its thread using c/cpp?如何使用 c/cpp 从其线程中杀死进程?
【发布时间】:2021-01-03 10:37:34
【问题描述】:

有没有办法从它的线程中杀死进程?我有一个启动线程的进程,该进程等待来自终端的输入。我的要求是从线程中终止进程。

场景:线程实际上运行一个计时器来确定主进程是否空闲(即终端没有输入)一段时间,然后我希望线程终止进程。

【问题讨论】:

  • exit(); 应该终止进程。
  • 哪种语言,C 或 C++?它们是不同的语言。例如,C++ 有 std::thread 而 C 没有。请酌情更新您的语言标签。
  • 这真的取决于进程的能力。如果它注册了任何atexit/on_exit 函数以及这些函数的行为方式。
  • 我要补充一点,我记得在 *nix 系统上,您至少可以向进程发送一个信号,该信号可以在不调用任何 atexit/on_exit 函数的情况下终止进程。可以肯定的是,您可以从进程中调用一个特殊的终止函数,以绕过信令开销。希望有人会在这里提出更具体的内容,或者您​​会在进一步的研究过程中找到它。
  • @ThomasMatthews:最好是 C++。

标签: c++ linux multithreading process


【解决方案1】:

您可以使用exit(EXIT_SUCCESS);。它包含在 windows.h 中。

【讨论】:

  • OP 的问题没有针对 Windows 进行标记,OP 的问题的答案比调用exit 更加细致入微。
猜你喜欢
  • 2017-11-11
  • 2011-06-29
  • 1970-01-01
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 2021-01-23
  • 1970-01-01
相关资源
最近更新 更多