Just check status process in c

20,497

Solution 1

Then you want to use the waitpid function with the WNOHANG option:

#include <sys/types.h>
#include <sys/wait.h>

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 */
}

Solution 2

I think you want waitpid with WNOHANG.

waitpid(pid, &status, WNOHANG);

Solution 3

Kill it with signal 0 and check return value.

Share:
20,497
gvalero87
Author by

gvalero87

pre-graduate Computer Engineering Student from Venezuela, USB university.

Updated on December 04, 2020

Comments

  • gvalero87
    gvalero87 over 3 years

    I want to know the status of a process. I think I can use the wait family functions but actually I don't want to wait for the process, just check the status and go on.

    I would want something like

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