Относительно вспомогательных данных msg_control из sys / socket.h - PullRequest
1 голос
/ 21 октября 2019

С 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 ()) получить доступ к копии так же, как оригинал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...