在C++中检查子进程的状态

Ale*_*lex 13 c++ fork parent wait

我有一个fork()用于创建子进程的程序.我已经看到了各种wait()用于在关闭之前等待子进程结束的示例,但是我想知道我能做些什么来简单地检查文件进程是否仍在运行.

我基本上有一个无限循环,我想做一些像:

if(child process has ended) break;

我怎么能这样做?

Eri*_*rik 36

waitpid()WNOHANG选项一起使用.

int status;
pid_t result = waitpid(ChildPID, &status, WNOHANG);
if (result == 0) {
  // Child still alive
} else if (result == -1) {
  // Error 
} else {
  // Child exited
}
Run Code Online (Sandbox Code Playgroud)