Что такое эквивалент ioctl FIONSPACE для NetBSD в Linux? - PullRequest
1 голос
/ 09 августа 2011

Я использую Linux 2.6.38 (fc14). Что такое флаг ioctl, чтобы получить количество свободного места в дескрипторе файла сокета (скажем, сокет TCP)? Я обнаружил, что NetBSD имеет FIONREAD, FIONWRITE и FIONSPACE для подобных связанных целей. Но я мог использовать FIONREAD только в Linux.

1 Ответ

8 голосов
/ 09 августа 2011

SIOCOUTQ - это эквивалент Linux FIONWRITE. Я не верю, что существует прямой FIONSPACE эквивалент: вместо этого вы можете вычесть значение, возвращаемое SIOCOUTQ, из размера буфера отправки сокета, который можно получить с помощью getsockopt(s, SOL_SOCKET, SO_SNDBUF, ...).

...