Expand description
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.
Functions§
- close_
fds_ on_ exec - Create a closure that will set the
FD_CLOEXECflag on all open file descriptors when called. This function should be called before invokingfork()as it may allocate memory. The returned closure should be called afterfork()by the child process.