Transfer an arbitrary file descriptor from parent process to the child.
This function takes "ownership" of the fd; it will be closed in the parent when this is freed.
By default, all file descriptors from the parent will be closed. This function allows you to create (for example) a custom pipe
or socketpair before launching the process, and choose the target descriptor in the child.
An example use case is GNUPG, which has a command line argument --passphrase-fd providing a file descriptor number where it expects the passphrase to be written.
| this | |
| source_fd |
File descriptor in parent process |
| target_fd |
Target descriptor for child process |