closefds is a library that provides support for setting the
FD_CLOEXEC flag on all open
file descriptors after
fork() and before
exec() on UNIX-like systems.
Any file descriptors that aren't marked with this flag will stay open after
which can cause resources to leak and can lead to deadlocks. Ideally, whenever a file
descriptor is created, it will be created with the
FD_CLOEXEC flag already set.
However, this may not be possible in some circumstances - such as when using an
external library or a system call that does not support the
FD_CLOEXEC flag, such as
close_fds_on_exec() will create a closure that can be passed
pre_exec() function when spawning a child process via the
and will set the
FD_CLOEXEC flag as appropriate on open file descriptors.
Create a closure that will set the