我如何知道一个进程[未被 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/