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 exec()
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
pipe().
The function close_fds_on_exec() will create a closure that can be passed
as a pre_exec() function when spawning a child process via the Command interface
and will set the FD_CLOEXEC flag as appropriate on open file descriptors.