Il suffit de vérifier le processus d’état en c

Je veux connaître le statut d’un processus. Je pense que je peux utiliser les fonctions d’attente de la famille, mais en réalité je ne veux pas attendre le processus, il suffit de vérifier l’état et de continuer

Je voudrais quelque chose comme

checkStatusOfProcess(&status); if(status == WORKING) { //do something } else if(status == exited) { //do something else } else \\I dont care about other states 

Ensuite, vous voulez utiliser la fonction waitpid avec l’option WNOHANG :

 #include  #include  int status; pid_t return_pid = waitpid(process_id, &status, WNOHANG); /* WNOHANG def'd in wait.h */ if (return_pid == -1) { /* error */ } else if (return_pid == 0) { /* child is still running */ } else if (return_pid == process_id) { /* child is finished. exit status in status */ } 

Je pense que vous voulez waitpid avec WNOHANG .

 waitpid(pid, &status, WNOHANG); 

Tuez-le avec le signal 0 et vérifiez la valeur de retour.