c - 关于来自 sys/socket.h 的 msg_control 辅助数据
问题描述
来自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;/协议特定类型//后跟 unsigned char cmsg_data[]; */ };
1)鉴于 msg_control 是指向第一个字节的指针,“控制消息序列的长度”是序列中所有 cmsghdr 结构的字节大小,还是序列中 cmsghdr 结构的数量?
2) 是否允许制作 msghdr 结构(包含所有 cmsghdr 结构)的逐字节副本,并让相关宏(如 CMSG_FIRSTHDR())像访问原始文件一样访问副本?
解决方案
推荐阅读
- java - 如何在已经存在的路径上创建中间文件夹?
- jhipster - Jhipster 实体创建给出错误“无法读取未定义的属性 'toLowerCase'”
- css - 如何在离子文本区域内定位浮动离子标签?
- javascript - 如何使我的 typescript 库的声明文件可以安装在 @types/mylibrary
- python - 在 Python 中的数据集中的列之间循环
- active-directory - Nextcloud LDAP 组为空
- ethereum - ERC721 Token 抽象合约或接口,无法部署
- gcc - Oneliner 仅使用 gcc 编译多个可执行文件
- sas - 在SAS中使用换行符将数据迭代到新行
- google-analytics - 设置新的 Web+App Google Analytics 的最佳做法是什么?