sockatmark()

Определить, находится ли сокет на отметке вне диапазона (out-of-band)

Прототип:

#include <sys/socket.h>
int sockatmark( int s );

Аргументы:

s
Файловый дескриптор сокета, возвращенный функцией socket(), который подлежит проверке.

Библиотека:

libsocket

Описание:

Функция sockatmark() определяет, находится ли сокет, указанный параметром s, на отметке внеполосных данных. Если протокол для сокета поддерживает данные вне диапазона, помечая поток меткой внеполосных данных, sockatmark() возвращает 1, когда все данные, предшествующие метке, были прочитаны, и диапазонная метка данных это первый элемент в очереди приема.

Функция sockatmark() не удаляет метку внеполосных данных из потока.

Использование этой функции между операциями приема позволяет приложению определять, какие данные поступают до и после внеполосных данных.

Возвращаемое значение:

0
Сокет не находится на отметке внеполосных данных.
1
Сокет находится на отметке внеполосных данных.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Некорректный файловый дескриптор s.
ENOTTY
Аргумент s не является файловым дескриптором допустимого сокета.

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Тематические ссылки:

recv(), recvmsg()




Предыдущий раздел: Описание API сетевой библиотеки