Provided by: manpages-ja-dev_0.5.0.0.20161015+dfsg-1_all bug

名前

       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 がソケットではなくファイルである。

準拠

       SVr4, 4.4BSD (getsockname()  関数は 4.2BSD で追加された), POSIX.1-2001.

注意

       getsockname()   の三番目の引き数は  (4.x BSD や libc4, libc5 と同様に) 実際には int * であ
       る。 glibc でも使われている現在の socklen_t に関して、 POSIX には少し混乱がある。 詳しくは
       accept(2) を参照のこと。

関連項目

       bind(2), socket(2), getifaddrs(3), ip(7), socket(7), unix(7)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。