BINDRESVPORT

Section: Linux Programmer's Manual (3)
Updated: 2007-05-31
Index JM Home Page roff page
 

名前

bindresvport - ソケットを特権 IP ポートにバインドする  

書式

#include <sys/types.h>
#include <netinet/in.h>

int bindresvport(int sd, struct sockaddr_in **sin);
 

説明

bindresvport() は、ソケット・ディスクリプタを特権 IP ポートにバインドするのに使う。 特権ポートとは、ポート番号が 0 から 1023 の範囲にあるポートである。

in->sin_port が 0 の場合、600 から 1023 の範囲にある無名ポート (anonymous port) が選択される。 bindresvport() によって実行された bind(2) が成功すると、実際に割り当てられたポート番号が sin->sin_port に入れて返される。

sin には NULL を指定することもでき、その場合には sin->sin_family は暗黙のうちに AF_INET とみなされ、(上記の通り) 無名ポートが割り当てられる。 しかし、この場合には、 bindresvport() は実際に割り当てられたポート番号を返す手段を持たない。  

返り値

bindresvport() は成功すると 0 を返す。それ以外の場合、-1 を返し、 errno にエラーの原因を示す値を設定する。  

エラー

bindresvport() は bind(2) と同じ原因で失敗する可能性がある。  

準拠

POSIX.1-2001 にはない。 BSD, Solaris およびその他の多くのシステムに存在する。  

注意

特権ポートにバインドできるのは root だけである。 それ以外のユーザがこのコールを行っても失敗する。 さらに、以下のエラーが発生することがある:

EPFNOSUPPORT
sin が NULL 以外で、かつ sin->sin_familyAF_INET でなかった。
 

関連項目

bind(2)


 

Index

名前
書式
説明
返り値
エラー
準拠
注意
関連項目

This document was created by man2html, using the manual pages.
Time: 04:31:32 GMT, November 19, 2007