int getpeername(int s, struct sockaddr *name, socklen_t *namelen);
ОПИСАНИЕ
Getpeername
возвращает имя машины, подключившейся к сокету
s.
Параметр
namelen
должен быть инициализирован в целях отображения объема памяти, который занимает
name.
По возвращении он содержит размер памяти, занимаемый именем машины (байт).
Имя не считывается, если буфер окажется слишком мал.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
При удачном завершении возвращается ноль. При ошибке возвращается -1 , а
переменной
errno
присваивается соответствующее значение.
НАЙДЕННЫЕ ОШИБКИ
EBADF
Аргумент
s
не является правильным описателем.
ENOTSOCK
Аргумент
s
является файлом, а не сокетом.
ENOTCONN
Нет соединения.
ENOBUFS
Нехватает памяти для выполнения операции.
EFAULT
Параметр
name
указывает на участок недоступного адресного пространства.
СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.4BSD (вызов
getpeername
впервые появился в 4.2BSD).
ЗАМЕЧАНИЯ
Третий аргумент функции
getpeername
в действительности является `int *' (то, что и описано в BSD 4.*, в libc4 и libc5).
В результате недоразумения в POSIX появилось socklen_t.
Хотя черновой вариант еще не принят, но glibc2 уже
следует ему и соответственно включает в себя socklen_t. См. также
accept(2).