我怎么知道一个进程[未被c调用]已经退出并基于它在C中做了什么?
例如。有一个正在运行的应用程序,比如说记事本。我创建了一个应用程序来删除它创建的文本文件。它是开放时我不能这样做。那么我如何知道记事本何时退出并基于此在C。,。,
中作出决定答案 0 :(得分:0)
如果您知道该过程的PID,则可以使用kill()
功能。向进程发送信号0保证不将其终止,但仅报告它是否正在运行。
如果您不知道进程的PID,则磁盘上通常会有一个pidfile用于相关进程(例如/var/run/processname.pid
) - 查看启动它的文件以获取更多信息。如果此PID文件不存在,则该进程不应运行。如果存在,该文件包含(作为文本)过程的PID,您可以使用上述方法检查。
如果你不知道进程的PID并且它没有PID文件,那么你必须走/proc
,或者转出pgrep
或类似的。尽可能避免这种情况。