1 #include <sys/socket.h>
13 socketpair(AF_UNIX, SOCK_STREAM, 0, j);
21 int mysecretfd = recvfd(j[0]);
22 write(mysecretfd, "hello\n", 7);
39 char cms[CMSG_SPACE(sizeof(int))];
45 memset(&msg, 0, sizeof msg);
48 msg.msg_control = (caddr_t)cms;
49 msg.msg_controllen = CMSG_LEN(sizeof(int));
51 cmsg = CMSG_FIRSTHDR(&msg);
52 cmsg->cmsg_len = CMSG_LEN(sizeof(int));
53 cmsg->cmsg_level = SOL_SOCKET;
54 cmsg->cmsg_type = SCM_RIGHTS;
55 memmove(CMSG_DATA(cmsg), &fd, sizeof(int));
57 if((n=sendmsg(s, &msg, 0)) != iov.iov_len)
71 char cms[CMSG_SPACE(sizeof(int))];
76 memset(&msg, 0, sizeof msg);
82 msg.msg_control = (caddr_t)cms;
83 msg.msg_controllen = sizeof cms;
85 if((n=recvmsg(s, &msg, 0)) < 0)
90 cmsg = CMSG_FIRSTHDR(&msg);
91 memmove(&fd, CMSG_DATA(cmsg), sizeof(int));