有人可以告诉我如何检查具有给定进程ID的unix进程是否在C程序中运行。我知道我可以调用system()并使用ps命令,但我不想调用system()。
答案 0 :(得分:30)
使用kill(2):
if (kill(pid, 0) == 0) {
/* process is running or a zombie */
} else if (errno == ESRCH) {
/* no such process with the given pid is running */
} else {
/* some other error... use perror("...") or strerror(errno) to report */
}