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Сообщить о неточности