Python Glossary English

Python 3.3+Linux · macOSsocketфункция

socket.CMSG_LEN()

дескрипторы и служебные данные

Возвращает длину одного элемента служебных данных (ancillary data) без хвостового выравнивания — для sendmsg и recvmsg.

Синтаксис

socket.CMSG_LEN(length) -> int

Значение зависит от платформы (20 для 4 байт в Linux x86-64), поэтому его вычисляют, а не пишут числом. Для размера буфера recvmsg переносимый код берёт CMSG_SPACE, а не CMSG_LEN: если элементов несколько, CMSG_LEN не учитывает выравнивание, данные обрезаются (флаг MSG_CTRUNC), и переданные дескрипторы теряются.

Примеры

import socket
print(socket.CMSG_LEN(4))  # → ? 20 на Linux x86-64
print(socket.CMSG_LEN(4) <= socket.CMSG_SPACE(4))  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности