BINDRESVPORT(3) FreeBSD ライブラリ関数マニュアル BINDRESVPORT(3)
名称
bindresvport, bindresvport_sa − 特権 IP ポートにソケットをバインドする |
書式
#include <rpc/rpc.h> int |
bindresvport(int sd, struct sockaddr_in *sin); int |
bindresvport_sa(int sd, struct sockaddr *sa); |
解説 |
bindresvport と bindresvport_sa は、ソケット記述子を、特権 IP ポート、す なわち範囲 0 〜 1023 のポートに結合するために使用されます。 root だけが特権ポートに結合できます。この呼び出しは他のユーザについては処 理失敗します。 sin がヌルポインタでない場合、 sin->sin_family は sd によって渡されるソ ケットのアドレスファミリで初期化する必要があります。 sin->sin_port の値が 0 でない場合、 bindresvport() は、指定したポートを使用しようとします。そ れに失敗すると、別の特権付きポートを自動的に選択します。 sin にヌルポインタを渡すことは正当です。この場合、呼び出し側は bindresvport() が拾ったポート番号を得ることができません。 bindresvport() の関数プロトタイプは、 AF_INET ソケットに特化しています。 bindresvport_sa() は、より中立的な関数プロトタイプを持ちますが、正確に同 じように動作します。両方の関数とも正確に同じ挙動を示すことと、両方とも AF_INET ソケットと同様に、 AF_INET6 ソケットをサポートすることに注意して ください。 |
戻り値
bindresvport() と bindresvport_sa() は、処理が成功したら値 0 を返します。 そうでない場合は −1 が返され、エラーを示すために errno が設定されます。 |
エラー
bindresvport() と bindresvport_sa() 関数は次の場合に失敗します。 |
[EBADF]
sd が有効な記述子ではありません。 [ENOTSOCK] [EADDRNOTAVAIL] [EADDRINUSE] [EINVAL] [EACCES] [EFAULT] [ENOBUFS] [EPFNOSUPPORT] 関連項目 |
bind(2), socket(2), rresvport(3), rresvport_af(3) FreeBSD 10.0 January 27, 2000 FreeBSD 10.0 |