bindresvportのヘルプ・マニュアル
日本語 英語
bindresvport --help
man bindresvport
BINDRESVPORT(3) Linux Programmer’s Manual BINDRESVPORT(3)
名前
bindresvport - ソケットを特権 IP ポートにバインドする
書式
#include
#include
int bindresvport(int sockfd, struct sockaddr_in *sin);
説明
bindresvport() は 、 ソ ケ ット・ディスクリプタを特権無名 (privileged
anonymous) IP ポートにバインドするのに使う。特権無名 IP ポートとは、 ポ
ート番号が 512 から 1023 の範囲から任意に選択されるポートである。
bindresvport() によって実行された bind(2) が成功し、 sin が NULL 以外の
場合、実際に割り当てられたポート番号が sin->sin_port に入れて返される。
sin には NULL を指定することもでき、その場合には sin->sin_family は暗黙
のうちに AF_INET とみなされる。しかし、この場合には、 bindresvport() は
実 際に割り当てられたポート番号を返す手段を持たない (割り当てられたポー
ト番号は、後で getsockname(2) を使って取得できる)。
返り値
bindresvport() は成功すると 0 を返す。それ以外の場合、-1 を返し、 errno
にエラーの原因を示す値を設定する。
エラー
bindresvport() は bind(2) と同じ原因で失敗する可能性がある。さらに、以
下のエラーが発生することがある:
EACCES 呼び出し元がスーパーユーザの特権を持っていなかった (より正確に言
うと、 CAP_NET_BIND_SERVICE ケーパビリティが必要である)。
EADDRINUSE
全ての特権ポートが使用中である。
EAFNOSUPPORT (glibc 2.7 以前では EPFNOSUPPORT)
sin が NULL 以外で、かつ sin->sin_family が AF_INET でなかった。
準拠
POSIX.1-2001 にはない。 BSD, Solaris およびその他の多くのシステムに存在
する。
注意
bindresvport() のいくつかの実装と異なり、glibc の実装では呼び出し元が
sin->sin_port で渡した値はどんな値であっても無視される。
関連項目
bind(2), getsockname(2)
2008-12-03 BINDRESVPORT(3)
BINDRESVPORT(3) Linux Programmer’s Manual BINDRESVPORT(3)
NAME
bindresvport - bind a socket to a privileged IP port
SYNOPSIS
#include
#include
int bindresvport(int sockfd, struct sockaddr_in *sin);
DESCRIPTION
bindresvport() is used to bind a socket descriptor to a privileged
anonymous IP port, that is, a port number arbitrarily selected from the
range 512 to 1023.
If the bind(2) performed by bindresvport() is successful, and sin is
not NULL, then sin->sin_port returns the port number actually allo-
cated.
sin can be NULL, in which case sin->sin_family is implicitly taken to
be AF_INET. However, in this case, bindresvport() has no way to return
the port number actually allocated. (This information can later be
obtained using getsockname(2).)
RETURN VALUE
bindresvport() returns 0 on success; otherwise -1 is returned and errno
set to indicate the cause of the error.
ERRORS
bindresvport() can fail for any of the same reasons as bind(2). In
addition, the following errors may occur:
EACCES The caller did not have superuser privilege (to be precise: the
CAP_NET_BIND_SERVICE capability is required).
EADDRINUSE
All privileged ports are in use.
EAFNOSUPPORT (EPFNOSUPPORT in glibc 2.7 and earlier)
sin is not NULL and sin->sin_family is not AF_INET.
CONFORMING TO
Not in POSIX.1-2001. Present on the BSDs, Solaris, and many other sys-
tems.
NOTES
Unlike some bindresvport() implementations, the glibc implementation
ignores any value that the caller supplies in sin->sin_port.
SEE ALSO
bind(2), getsockname(2)
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
2008-12-03 BINDRESVPORT(3)