getpeername(2) FreeBSD 一般コマンドマニュアル

getpeername

前のページ 上に戻る 次のページ

getpeername




書式

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

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


解説

     getpeername() は、ソケット s に接続されたピア (通信相手) の名前を返しま
     す。 namelen パラメータには、 name が指す空間の量を示す値を入れておく必要
     があります。戻る時に、これには返された名前の実際のサイズ (バイト単位) が
     入れられます。準備されたバッファが小さすぎる場合、名前は切り捨てられま
     す。


実装に関する注

     非スレッドライブラリでは、 getpeername() は getpeername システムコールと
     して実装されています。

     スレッドライブラリでは、 getpeername システムコールは
     _thread_sys_getpeername() にアセンブルされ、 getpeername() は、読取りと書
     込みについて s をロックしてから _thread_sys_getpeername() を呼び出す関数
     として実装されています。戻る前に getpeername() は s をアンロックします。


戻り値

     関数 getpeername() は、処理が成功すると値 0 を返します。そうでない場合、
     値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。


エラー

     以降の場合を除いて呼び出しは処理に成功します。

     [EBADF]            引数 s が有効な記述子ではありません。

     [ECONNRESET]       接続がピアによってリセットされました。

     [ENOTSOCK]         引数 s はソケットではなくファイルです。

     [ENOTCONN]         ソケットが接続されていません。

     [ENOBUFS]          操作を実行するための十分なリソースがシステムにありませ
                        ん。

     [EFAULT]           name パラメータは、プロセスのアドレス空間の有効な領域
                        の範囲外を指しています。


関連項目

     accept(2), bind(2), getsockname(2), socket(2)


歴史

     getpeername() 関数は 4.2BSD で登場しました。

FreeBSD 4.4                      June 4, 1993                      FreeBSD 4.4

ABELNET VPSサービス