GETPEERNAME
Section: Linux Programmer's Manual (2)
Updated: 2008-12-03
Index
JM Home Page
roff page
名前
getpeername - 接続している相手ソケットの名前を取得する
書式
#include <sys/socket.h>
int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
説明
getpeername()
は、ソケット(socket)
sockfd
に接続している相手のアドレスを、
addr
が指すバッファに格納して返す。
addrlen
引き数は、
addr
が指している領域のサイズに初期化しておかなければならない。
関数が返る時には、
addrlen
には実際に返された名前のサイズが (バイト単位で) 格納される。
提供されたバッファが小さすぎた場合には、名前は切り詰められる。
渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。
この場合には、
addrlen
には、呼び出し時に指定された値よりも大きな値が格納される。
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、
errno
を適切に設定する。
エラー
- EBADF
-
引き数
sockfd
が有効なディスクリプタでない。
- EFAULT
-
addr
引き数の指しているメモリが有効なプロセスのアドレス空間の
一部でない。
- EINVAL
-
addrlen
が不正である (例えば、負で場合など)。
- ENOBUFS
-
この操作を行なうのに十分な資源がシステムに存在しない。
- ENOTCONN
-
ソケットが接続していない。
- ENOTSOCK
-
引き数
sockfd
がソケットでなくてファイルである。
準拠
SVr4, 4.4BSD
(getpeername()
関数は 4.2BSD で登場した), POSIX.1-2001.
注意
getpeername()
の三番目の引き数は実際には
`int *'
である (4.x BSD, libc4, libc5 では
このようになっている)。
POSIX では紆余曲折を経て現在の
socklen_t
になっており、
glibc でも
socklen_t
を使っている。
accept(2)
も参照のこと。
関連項目
accept(2),
bind(2),
getsockname(2),
ip(7),
socket(7),
unix(7)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:26:43 GMT, April 25, 2010