getsockname

Autres langues

Langue: ru

Autres versions - même langue

Version: 1993-07-24 (fedora - 25/11/07)

Autres sections - même nom

Section: 2 (Appels système)

ИМЯ

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