ИМЯ¶
getpeername - получить
имя
удалённой
стороны,
подключенной
к сокету
ОБЗОР¶
#include <sys/socket.h>
int getpeername(int s, struct sockaddr *name,
socklen_t *namelen);
ОПИСАНИЕ¶
Getpeername
возвращает
имя
удалённой
стороны,
подключенной
к сокету
s.
Параметр
namelen
должен быть
инициализирован,
чтобы задать
размер
пространства,
на которое
указывает
name.
При возврате
он содержит
фактический
размер,
возвращённого
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).
СМОТРИ
ТАКЖЕ¶
accept(2),
bind(2),
getsockname(2)
ПЕРЕВОД¶
Перевёл с
английского
Виктор
Вислобоков
<corochoone@perm.ru> 2004