Pass a file descriptor over a unix domain socket
#include <io.h>
int io_passfd(int64 sock,int64 fd);
io_passfd transfers the file descriptor fd over the Unix Domain socket sock. This works much like dup(2), only that the copy of the descriptor appears not in this process but at the other end of the Unix Domain socket (which therefore must be a process on the same system).
The peer can then use io_receivefd(3) to receive the file descriptor.
Note that the passed descriptor stays open in the sending process.
io_passfd returns 0 on success, -1 on error (setting errno accordingly).