SENDFD(3)

NAME
sendfd, recvfd - pass file descriptors along Unix domain sockets

SYNOPSIS
#include <u.h>

#include <libc.h>

int    sendfd(int socket, int fd)

int    recvfd(int socket)

DESCRIPTION
Recvfd and sendfd can be used to pass an open file descriptor over a Unix domain socket from one process to another. Since pipe((3)) is implemented with socketpair((2)) instead of pipe((2)), socket can be a file descriptor obtained from pipe((3)).

Sendfd sends the file descriptor fd along the socket to a process calling recvfd on the other end.

It is assumed that the two sides have coordinated and agreed to transfer a file descriptor already, so that the sendfd is met with a recvfd instead of an ordinary read.

The file descriptor number may change on its way between processes, but the kernel structure it represents will not.

SOURCE
/src/lib9/sendfd.c

SEE ALSO
socketpair((2)), sendmsg in send((2))