c - 如何知道正在运行的应用程序是否已退出并据此在 C 中执行某些操作?

标签 c

我如何知道一个进程[未被 c 调用]已经退出并据此在 C 中执行某些操作?

例如。有一个正在运行的应用程序,比如记事本。我创建一个应用程序来删除它创建的文本文件。当它打开时我不能这样做。那么我如何知道记事本何时退出并据此在 C.,., 中做出决定

最佳答案

如果您知道进程的PID,则可以使用kill()函数。向进程发送信号 0 保证不会杀死它,而只是报告它是否正在运行。

如果您不知道进程的 PID,磁盘上通常会存在相关进程的 pid 文件(例如 /var/run/processname.pid) - 查看该文件启动它以获取更多信息。如果该 PID 文件不存在,则该进程不应运行。如果存在,则该文件包含(作为文本)进程的 PID,您可以使用上面的方法进行检查。

如果您不知道进程的 PID 并且它没有 PID 文件,那么您将必须遍历 /proc,或者 shell 到 pgrep或类似的。如果可能的话,请避免这种情况。

关于c - 如何知道正在运行的应用程序是否已退出并据此在 C 中执行某些操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22143478/

相关文章:

c - 使用 C 在 Windows 中打印带有千位分隔符的整数

c++ - 如何在 SPOJ 等竞争性编程网站中处理输入/输出格式?

c - C中的无限递归

c - 文件内的值不会被替换

c - If .. else number is smaller than, unreachable 代码

c - 结构内的结构,使用 typedef 和数组

c - C 中与指针的奇怪交互

python - C语言中的struct是什么?

c - 如何在C中用数组填充结构的指针元素

无法使用 eclipse 调试 C/C++ 代码,因为缺少调试信息