tail head cat sleep
QR code linking to this page

manページ  — BIND

名称

bind – ローカルプロトコルアドレスをソケットに割り当てる

内容

ライブラリ

Standard C Library (libc, -lc)

書式

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

int
bind(int s, const struct sockaddr *addr, socklen_t addrlen);

解説

bind() システムコールは、ローカルプロトコルアドレスをソケットに割り当てます。 ソケットは、 socket(2) で作成される時にアドレスファミリ空間に存在しますが、 プロトコルアドレスは割り当てられていません。 bind() システムコールはソケットに addr を割り当てることを要求します。

UNIX ドメイン内でのアドレスのバインドによってファイルシステム内に ソケットが作成されます。 これは、必要なくなったときに呼び出し側が (unlink(2) を使用して) 削除する必要があります。

アドレスのバインドで使用される規則は通信ドメイン間で異なります。 詳細については、 セクション 4 のマニュアルエントリを参照してください。

移植性を最大にするためには、ソケット構造体は、使用前 つまりこれを bind() に渡す前に、0 で埋めるべきです。

戻り値

The bind function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

bind() システムコールは次の場合に失敗します:
[EAGAIN]
  要求を満たすためのカーネルリソースが一時的に利用できません。
[EBADF]
  s 引数が有効な記述子ではありません。
[ENOTSOCK]
  s 引数がソケットではありません。
[EADDRNOTAVAIL]
  指定のアドレスがローカルマシンから利用できません。
[EADDRINUSE]
  指定のアドレスは既に使用中です。
[EACCES]
  要求されたアドレスは保護されており、現在のユーザが持っているパーミッションは それにアクセスするのには不適切です。
[EFAULT]
  addr 引数が有効なユーザアドレス空間ではありません。

次のエラーは UNIX ドメイン内のバインドアドレスに固有のものです。
[ENOTDIR] パスの構成要素中にディレクトリ以外のものが含まれています。
[ENAMETOOLONG]
  パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。
[ENOENT] パス名の接頭辞構成要素が存在しません。
[ELOOP] パス名を変換するときに検出されたシンボリックリンクが多すぎます。
[EIO] ディレクトリエントリを作成している間、または inode を割り振りしている間に 入出力エラーが発生しました。
[EROFS] 指定されたファイルは読取り専用ファイルシステム上にあります。
[EISDIR] 空のパス名が指定されました。

関連項目

connect(2), getsockname(2), listen(2), socket(2)

歴史

bind() システムコールは BSD 4.2 で登場しました。

BIND (2) June 4, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.