Manpages

ИМЯ

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 [AT] hsys.ru> 1999