getsockname -
ソケットの名前を取得する
#include <sys/socket.h>
int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
getsockname() は、ソケット
sockfd
に結び付けられている現在のアドレスを、
addr
が指すバッファーに格納して返す。
addrlen 引数は、
addr
が指している領域のサイズ
(バイト単位)
に初期化しておかなければならない。
関数が返る時には、
addrlen
にはソケットアドレスの実際のサイズ
(バイト単位)
が格納される。
渡されたバッファーが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。
この場合には、
addrlen
には、呼び出し時に指定された値よりも大きな値が格納される。
成功した場合にはゼロが返される。エラー時には
-1 が返され、
errno
が適切に設定される。
- EBADF
- 引数 sockfd
は有効なファイルディスクリプターでない。
- EFAULT
- 引数 addr
の指しているメモリーがプロセスのアドレス空間の有効な部分ではない。
- EINVAL
-
addrlen
が不正である
(例えば、負で場合など)。
- ENOBUFS
- 処理をするだけの十分なリソースがシステムに無い。
- ENOTSOCK
- ファイルディスクリプター
sockfd
がソケットを参照していない。
POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (
getsockname() は 4.2BSD
で初めて実装された)
For background on the
socklen_t type, see
accept(2).
bind(2),
socket(2),
getifaddrs(3),
ip(7),
socket(7),
unix(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。