EN JA
GETSOCKNAME(2)
GETSOCKNAME(2) FreeBSD System Calls Manual GETSOCKNAME(2)

名称

getsocknameソケットの名前を取得する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/types.h>
#include < sys/socket.h>

int
getsockname( int s, struct sockaddr * restrict name, socklen_t * restrict namelen);

解説

getsockname() システムコールは、指定されたソケットの現在の name を返します。 namelen 引数は、 name によって指される空間の量を示すために初期化されるべきです。戻り時に、返された名前の実際のサイズを (バイト単位で) 含んでいます。

戻り値

The getsockname() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

呼び出しは、次の場合を除いて成功します:
[ EBADF]
引数 s が有効な記述子ではありません。
[ ECONNRESET]
接続がピア (通信相手) によってリセットされました。
[ EINVAL]
namelen 引数の値が有効ではありません。
[ ENOTSOCK]
引数 s がソケットではなくファイルです。
[ ENOBUFS]
操作を行なうためのシステムで利用可能なリソースが不足しています。
[ EFAULT]
name 引数が、プロセスアドレス空間の有効な部分ではないメモリを指しています。

歴史

getsockname() システムコールは、 4.2BSD で登場しました。

バグ

UNIX ドメインのソケットにバインドされた名前は、アクセス不能です。 getsockname() は、長さ 0 の名前を返します。
June 4, 1993 FreeBSD