.TH SENDFD 3 .SH NAME sendfd, recvfd \- pass file descriptors along Unix domain sockets .SH SYNOPSIS .B #include .PP .B #include .PP .B int sendfd(int socket, int fd) .PP .B int recvfd(int socket) .SH DESCRIPTION .I Recvfd and .I sendfd can be used to pass an open file descriptor over a Unix domain socket from one process to another. Since .MR pipe (3) is implemented with .MR socketpair (2) instead of .MR pipe (2) , .I socket can be a file descriptor obtained from .MR pipe (3) . .PP .I Sendfd sends the file descriptor .I fd along the socket to a process calling .I recvfd on the other end. .PP It is assumed that the two sides have coordinated and agreed to transfer a file descriptor already, so that the .I sendfd is met with a .I recvfd instead of an ordinary .IR read . .PP The file descriptor number may change on its way between processes, but the kernel structure it represents will not. .SH SOURCE .B \*9/src/lib9/sendfd.c .SH SEE ALSO .MR socketpair (2) , .I sendmsg in .MR send (2)