ИМЯ
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).
СМОТРИ ТАКЖЕ
ПЕРЕВОД
Copyright (C) Alexey Mahotkin <alexm [AT] hsys.ru> 1999