Pelo que vi online você chama o método kill em c++ para ver se o processo está vivo. o problema com isso é que os PIDs são rycleados e o mesmo PID que você está procurando pode não ser o mesmo processo. Eu tenho um programa que possui dois processos que não são filhos um do outro. A única maneira de se comunicar com eles é IPC. Eu gostaria que meu processo de host fosse encerrado quando o processo do cliente fosse encerrado. Para fazer isso, preciso saber quando o processo do cliente não está mais ativo.
No Windows, eles têm o que é chamado de manipulador de processo que reservará o PID de ser reciclado até que o processo que criou o identificador seja encerrado. Estou me perguntando como conseguir isso para sistemas macOS/Linux (POSIX).
O código problemático como PIDs são reciclados.
if (0 == kill(pid, 0))
{
// Process exists.
}