Blame


1 058b0118 2005-01-03 devnull .TH SENDFD 3
2 058b0118 2005-01-03 devnull .SH NAME
3 058b0118 2005-01-03 devnull sendfd, recvfd \- pass file descriptors along Unix domain sockets
4 058b0118 2005-01-03 devnull .SH SYNOPSIS
5 058b0118 2005-01-03 devnull .B
6 058b0118 2005-01-03 devnull #include <u.h>
7 058b0118 2005-01-03 devnull .PP
8 058b0118 2005-01-03 devnull .B
9 058b0118 2005-01-03 devnull #include <libc.h>
10 058b0118 2005-01-03 devnull .PP
11 058b0118 2005-01-03 devnull .B
12 058b0118 2005-01-03 devnull int sendfd(int socket, int fd)
13 058b0118 2005-01-03 devnull .PP
14 058b0118 2005-01-03 devnull .B
15 058b0118 2005-01-03 devnull int recvfd(int socket)
16 058b0118 2005-01-03 devnull .SH DESCRIPTION
17 058b0118 2005-01-03 devnull .I Recvfd
18 058b0118 2005-01-03 devnull and
19 058b0118 2005-01-03 devnull .I sendfd
20 058b0118 2005-01-03 devnull can be used to pass an open file descriptor over
21 058b0118 2005-01-03 devnull a Unix domain socket from one process to another.
22 058b0118 2005-01-03 devnull Since
23 d32deab1 2020-08-16 rsc .MR pipe (3)
24 058b0118 2005-01-03 devnull is implemented with
25 d32deab1 2020-08-16 rsc .MR socketpair (2)
26 058b0118 2005-01-03 devnull instead of
27 d32deab1 2020-08-16 rsc .MR pipe (2) ,
28 058b0118 2005-01-03 devnull .I socket
29 058b0118 2005-01-03 devnull can be a file descriptor obtained from
30 d32deab1 2020-08-16 rsc .MR pipe (3) .
31 058b0118 2005-01-03 devnull .PP
32 058b0118 2005-01-03 devnull .I Sendfd
33 058b0118 2005-01-03 devnull sends the file descriptor
34 058b0118 2005-01-03 devnull .I fd
35 058b0118 2005-01-03 devnull along the socket to a process calling
36 058b0118 2005-01-03 devnull .I recvfd
37 058b0118 2005-01-03 devnull on the other end.
38 058b0118 2005-01-03 devnull .PP
39 058b0118 2005-01-03 devnull It is assumed that the two sides have coordinated
40 058b0118 2005-01-03 devnull and agreed to transfer a file descriptor already, so
41 058b0118 2005-01-03 devnull that the
42 058b0118 2005-01-03 devnull .I sendfd
43 058b0118 2005-01-03 devnull is met with a
44 058b0118 2005-01-03 devnull .I recvfd
45 058b0118 2005-01-03 devnull instead of an ordinary
46 058b0118 2005-01-03 devnull .IR read .
47 058b0118 2005-01-03 devnull .PP
48 058b0118 2005-01-03 devnull The file descriptor number may change on its way
49 058b0118 2005-01-03 devnull between processes, but the kernel structure it represents
50 058b0118 2005-01-03 devnull will not.
51 058b0118 2005-01-03 devnull .SH SOURCE
52 c3674de4 2005-01-11 devnull .B \*9/src/lib9/sendfd.c
53 058b0118 2005-01-03 devnull .SH SEE ALSO
54 d32deab1 2020-08-16 rsc .MR socketpair (2) ,
55 058b0118 2005-01-03 devnull .I sendmsg
56 058b0118 2005-01-03 devnull in
57 d32deab1 2020-08-16 rsc .MR send (2)