来自https://linux.die.net/man/2/recvmsg:
调用recvmsg()时,msg_controllen的长度应为 msg_control中的可用缓冲区;成功返回后 调用它将包含控制消息序列的长度。的 消息的形式为: struct cmsghdr { socklen_t cmsg_len; / *数据字节计数,包括hdr / int cmsg_level; / 原始协议 / int cmsg_type; / 协议特定的类型 / / ,后跟 无符号字符cmsg_data []; * / };
1)假设msg_control是指向第一个字节的指针,则“控制消息序列的长度”是该序列中所有cmsghdr结构的字节大小或该序列中cmsghdr结构的数目?
2)是否可以按字节复制msghdr结构(包含所有cmsghdr结构)并让相关的宏(如CMSG_FIRSTHDR())像访问原始文件一样访问副本? / p>