I added handing of result of ::pipe2 call (there is a warning from gcc when high warning level is on).
I changed logic of process::running to detect zombies (by calling waitpid with WNOHANG and processing its result).
UPD. There is also two free functions procxx::running() which do the same thing as process::running(). I have found that this functionality could be useful if there is only pid of child process.
I added handing of result of ::pipe2 call (there is a warning from gcc when high warning level is on).
I changed logic of process::running to detect zombies (by calling waitpid with WNOHANG and processing its result).
UPD. There is also two free functions procxx::running() which do the same thing as process::running(). I have found that this functionality could be useful if there is only pid of child process.