mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
d32deab17b
Suggested by G. Brandon Robinson.
57 lines
1,014 B
Groff
57 lines
1,014 B
Groff
.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)
|
|
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)
|