file descriptor will refer to the resulting zombie process.
Note, however, that this is guaranteed only if the following
conditions hold true:
-.IP * 3
+.IP \(bu 2
the disposition of
.BR SIGCHLD
has not been explicitly set to
.BR SIG_IGN
(see
.BR sigaction (2));
-.IP *
+.IP \(bu
the
.BR SA_NOCLDWAIT
flag was not specified while establishing a handler for
(see
.BR sigaction (2));
and
-.IP *
+.IP \(bu
the zombie process was not reaped elsewhere in the program
(e.g., either by an asynchronously executed signal handler or by
.BR wait (2)
with the
.BR CLONE_PID
flag) can be used for the following purposes:
-.IP * 3
+.IP \(bu 2
The
.BR pidfd_send_signal (2)
system call can be used to send a signal to the process referred to by
a PID file descriptor.
-.IP *
+.IP \(bu
A PID file descriptor can be monitored using
.BR poll (2),
.BR select (2),
.RB ( read (2)
on the file descriptor fails with the error
.BR EINVAL ).
-.IP *
+.IP \(bu
If the PID file descriptor refers to a child of the calling process,
then it can be waited on using
.BR waitid (2).
-.IP *
+.IP \(bu
The
.BR pidfd_getfd (2)
system call can be used to obtain a duplicate of a file descriptor