GETSOCKNAME(2)

名前
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/ に書かれている。