GETSOCKNAME
Section: Linux Programmer's Manual (2)
Updated: 2008-12-03
Index
JM Home Page
roff page
名前
getsockname - ソケットの名前を取得する
書式
#include <sys/socket.h>
int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
説明
getsockname()
は、ソケット
sockfd
に結び付けられている現在のアドレスを、
addr
が指すバッファに格納して返す。
addrlen
引き数は、
addr
が指している領域のサイズ (バイト単位) に初期化しておかなければならない。
関数が返る時には、
addrlen
にはソケットアドレスの実際のサイズ (バイト単位) が格納される。
渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。
この場合には、
addrlen
には、呼び出し時に指定された値よりも大きな値が格納される。
返り値
成功した場合 0 を返す。失敗した場合 -1 を返し、
errno
をエラーの内容に従って設定する。
エラー
- EBADF
-
引き数
sockfd
が有効なディスクリプタ (descriptor) ではない。
- 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)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:26:44 GMT, April 25, 2010