plan9port/man/man3/sendfd.3

58 lines
1,014 B
Groff
Raw Permalink Normal View History

2005-01-03 06:40:20 +00:00
.TH SENDFD 3
.SH NAME
sendfd, recvfd \- pass file descriptors along Unix domain sockets
.SH SYNOPSIS
.B
#include <u.h>
.PP
.B
#include <libc.h>
.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)
2005-01-03 06:40:20 +00:00
is implemented with
.MR socketpair (2)
2005-01-03 06:40:20 +00:00
instead of
.MR pipe (2) ,
2005-01-03 06:40:20 +00:00
.I socket
can be a file descriptor obtained from
.MR pipe (3) .
2005-01-03 06:40:20 +00:00
.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
2005-01-11 17:37:33 +00:00
.B \*9/src/lib9/sendfd.c
2005-01-03 06:40:20 +00:00
.SH SEE ALSO
.MR socketpair (2) ,
2005-01-03 06:40:20 +00:00
.I sendmsg
in
.MR send (2)