Man page - bindresvport(3)

Packages contains this manual

Available languages:

en fr pl ja ru ro

Manual

BINDRESVPORT

名 前
書 式
説 明
返 り 値
エ ラ ー
属 性
準 拠
注 意
関 連 項 目
こ の 文 書 に つ い て

名 前

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

書 式

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

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

説 明

bindresvport () is used to bind the socket referred to by the file descriptor sockfd to a privileged anonymous IP port, that is, a port number arbitrarily selected from the range 512 to 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

The calling process was not privileged (on Linux: the calling process did not have the CAP_NET_BIND_SERVICE capability in the user namespace governing its network namespace).

EADDRINUSE

全 て の 特 権 ポ ー ト が 使 用 中 で あ る 。

EAFNOSUPPORT (glibc 2.7 以 前 で は EPFNOSUPPORT )

sin が NULL 以 外 で 、 か つ sin->sin_family AF_INET で な か っ た 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-44821-1.png

The bindresvport () function uses a static variable that was not protected by a lock before glibc 2.17, rendering the function MT-Unsafe.

準 拠

Not in POSIX.1. Present on the BSDs, Solaris, and many other systems.

注 意

bindresvport () の い く つ か の 実 装 と 異 な り 、 glibc の 実 装 で は 呼 び 出 し 元 が sin->sin_port で 渡 し た 値 は ど ん な 値 で あ っ て も 無 視 さ れ る 。

関 連 項 目

bind (2), getsockname (2)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。