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

时间:2014-03-03 09:53:42

标签: c

我怎么知道一个进程[未被c调用]已经退出并基于它在C中做了什么?

例如。有一个正在运行的应用程序,比如说记事本。我创建了一个应用程序来删除它创建的文本文件。它是开放时我不能这样做。那么我如何知道记事本何时退出并基于此在C。,。,

中作出决定

1 个答案:

答案 0 :(得分:0)

如果您知道该过程的PID,则可以使用kill()功能。向进程发送信号0保证将其终止,但仅报告它是否正在运行。

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

如果你不知道进程的PID并且它没有PID文件,那么你必须走/proc,或者转出pgrep或类似的。尽可能避免这种情况。