# closefds 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.