70 char control[CMSG_SPACE(
sizeof(
int))] = {};
77 msg.msg_control = control_un.control;
78 msg.msg_controllen =
sizeof(control_un.control);
85 msg.msg_iov[0].iov_base = &ptr;
86 msg.msg_iov[0].iov_len = 1;
88 cmsghdr* cmptr = CMSG_FIRSTHDR(&msg);
89 cmptr->cmsg_level = SOL_SOCKET;
90 cmptr->cmsg_type = SCM_RIGHTS;
91 *
reinterpret_cast<
int*>(CMSG_DATA(cmptr)) = sendfd;
92 cmptr->cmsg_len = CMSG_LEN(
sizeof(
int));
100 char control[CMSG_SPACE(
sizeof(
int))] = {};
104 msg.msg_control = control_un.control;
105 msg.msg_controllen =
sizeof(control_un.control);
107 msg.msg_name =
nullptr;
115 msg.msg_iov[0].iov_base = &ptr;
116 msg.msg_iov[0].iov_len = 1;
121 cmsghdr* cmptr =
nullptr;
123 if ((cmptr = CMSG_FIRSTHDR(&msg)) !=
nullptr && cmptr->cmsg_len == CMSG_LEN(
sizeof(
int))) {
124 if (cmptr->cmsg_level != SOL_SOCKET || cmptr->cmsg_type != SCM_RIGHTS) {
129 *recvfd = *
reinterpret_cast<
int*>(CMSG_DATA(cmptr));