Get pid of child that has exited?
Warner Losh
imp at bsdimp.com
Sat Jul 21 04:04:24 UTC 2007
> How does one get the pid if a child process that has exited? On other
> systems this is available in siginfo_t but si_pid seems to be 0. Is
> that normal?
wait4, wait3 and waitpid will all return it:
If wait4(), wait3(), or waitpid() returns due to a stopped, continued, or
terminated child process, the process ID of the child is returned to the
calling process. If there are no children not previously awaited, -1 is
returned with errno set to ECHILD. Otherwise, if WNOHANG is specified
and there are no stopped, continued or exited children, 0 is returned.
If an error is detected or a caught signal aborts the call, a value of -1
is returned and errno is set to indicate the error.
I don't know if si_pid == 0 is normal. I rarely use SIGCHILD to get
the status of a child process.
Warner
More information about the freebsd-hackers
mailing list