GETSOCKNAME(2)

ИМЯ
getsockname - получить имя сокета

ОБЗОР
#include <sys/socket.h>

int getsockname(int s, struct sockaddr *name, socklen_t *namelen);

ОПИСАНИЕ
getsockname возвращает текущее имя указанного сокета в параметре name. В параметре namelen должно быть указано, сколько места выделено под name. При возврате в этом параметре передается реальный использованный размер в байтах.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха возвращается ноль. При ошибке возвращается -1, а значение errno устанавливается должным образом.

ОШИБКИ

EBADF
    Неверный файловый дескриптор s.

ENOTSOCK
    Аргумент -- это файл, а не сокет.

ENOBUFS
    В системе недостаточно ресурсов для выполнения операции.

EFAULT
    name указывает за пределы доступного адресного пространства.

СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.4BSD (функция getsockname появилась в 4.2BSD). SVr4 документирует дополнительные коды ошибок ENOMEM и ENOSR.

ЗАМЕЧАНИЕ
Третий аргумент функции getsockname в действительности имеет тип int * (это именно так в BSD 4.*, libc4 и libc5). Определенное недопонимание привело к тому, что в стандарте POSIX появился тип socklen_t. Черновик стандарта еще не принят, но glibc2 уже следует ему и также содержит socklen_t. См. также accept(2).

СМОТРИ ТАКЖЕ
bind(2), socket(2)

ПЕРЕВОД
Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999