ИМЯ¶
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