PREV INDEX NEXT

Author: Stan Eisenstat
Subject: Re: [Cs323] waitpid, wexitstatus, wifexited
Date: Sunday, 15 Nov 2020, 07:25:22


    > Message Posted By: Unknown
    >
    > What actually sets the status int in waitpid? Is that when the child
    > process executes that the status pointer is updated with whatever the
    > status of that child process was? ...

Assume that waitpid(pid,&status,0) is called and that
process pid is a child of the current process that is
still running.  When the child terminates, the operating
system sets *status to its status (which includes either
the signal that caused it to terminate, or the low-order
byte of the argument to exit() or the value returned by
main()) and returns the pid of the child as the value
of waitpid().
=====

    >                              ...  Also, how do WIFEXITED() and WEXITSTATUS
    > still work after the child process exit and are completed? From the pipe.c
    > example, it looks like it is somehow able to remember values of WIFEXITED
    > and WEXITSTATUS just from the status int? I'm a bit confused from the man
    > page.

WIFEXITED() and WEXITSTATUS() are macros that extract
information from the status variable set by the call to
waitpid() or wait().

--Stan-
PREV INDEX NEXT