getsockname - получить имя сокета
getsockname(2)
получить имя сокета
ОБЗОР
#include <sys/socket.h>
int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
ОПИСАНИЕ
getsockname() возвращает текущий адрес, к которому привязан сокет
sockfd, в буфере, указываемом
addr. В параметре
addrlen должно быть
указано, сколько места выделено (в байтах), на которое указывает
addr. При возврате в этом параметре передается реальный размер адреса
сокета.
Возвращаемый адрес урежется, если предоставленный буфер окажется слишком
маленьким; в этом случае в addrlen будет возвращено значение большее чем
было в вызове.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а
errno устанавливается в соответствующее значение.
ОШИБКИ
EBADF
Аргумент sockfd не является допустимым файловым дескриптором.
EFAULT
Аргумент addr указывает на память в недопустимой части адресуемого
пространства процесса.
EINVAL
Неправильное значение аргумента addrlen (например, отрицательное).
ENOBUFS
Недостаточно ресурсов в системе для выполнения операции.
ENOTSOCK
Файловый дескриптор sockfd указывает не на каталог.
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD, (
getsockname() впервые появился
в 4.2BSD).
ЗАМЕЧАНИЯ
Третий аргумент функции
getsockname() в действительности имеет тип
int * (это именно так в 4.x BSD, libc4 и libc5). Определённое недопонимание
привело к тому, что в стандарте POSIX появился тип
socklen_t также
используемый в glibc. Смотрите также
accept(2).