145 lines
4.5 KiB
Groff
145 lines
4.5 KiB
Groff
.\" Copyright (c) 1983, 1993
|
||
.\" The Regents of the University of California. All rights reserved.
|
||
.\"
|
||
.\" Redistribution and use in source and binary forms, with or without
|
||
.\" modification, are permitted provided that the following conditions
|
||
.\" are met:
|
||
.\" 1. Redistributions of source code must retain the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer.
|
||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer in the
|
||
.\" documentation and/or other materials provided with the distribution.
|
||
.\" 3. All advertising materials mentioning features or use of this software
|
||
.\" must display the following acknowledgement:
|
||
.\" This product includes software developed by the University of
|
||
.\" California, Berkeley and its contributors.
|
||
.\" 4. Neither the name of the University nor the names of its contributors
|
||
.\" may be used to endorse or promote products derived from this software
|
||
.\" without specific prior written permission.
|
||
.\"
|
||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
.\" SUCH DAMAGE.
|
||
.\"
|
||
.\" @(#)bind.2 8.1 (Berkeley) 6/4/93
|
||
.\" %Id: bind.2,v 1.7 1999/06/10 22:48:27 markm Exp %
|
||
.\"
|
||
.Dd June 4, 1993
|
||
.Dt BIND 2
|
||
.Os BSD 4.2
|
||
.Sh 名称
|
||
.Nm bind
|
||
.Nd ローカルプロトコルアドレスをソケットに割り当てる
|
||
.Sh 書式
|
||
.Fd #include <sys/types.h>
|
||
.Fd #include <sys/socket.h>
|
||
.Ft int
|
||
.Fn bind "int s" "const struct sockaddr *addr" "int addrlen"
|
||
.Sh 解説
|
||
.Fn bind
|
||
は、ローカルプロトコルアドレスをソケットに割り当てます。ソケットは、
|
||
.Xr socket 2
|
||
で作成される時にアドレスファミリ空間に存在しますが、
|
||
プロトコルアドレスは割り当てられていません。
|
||
.Fn bind
|
||
は
|
||
.Fa addr
|
||
がソケットに割り当てられていることを必要とします。
|
||
.Sh 注
|
||
UNIX ドメイン内でのアドレスのバインドによってファイルシステム内に
|
||
ソケットが作成されます。
|
||
これは、必要なくなったときに呼び出し側が
|
||
.Pf ( Xr unlink 2
|
||
を使用して) 削除する必要があります。
|
||
.Pp
|
||
アドレスのバインドで使用される規則は通信ドメイン間で異なります。
|
||
詳細については、
|
||
セクション 4 のマニュアルエントリを参照してください。
|
||
.Sh システムの注意事項
|
||
.Pp
|
||
ノンスレッドライブラリでは、
|
||
.Fn bind
|
||
は
|
||
.Va bind
|
||
システムコールとして実装されています。
|
||
.Pp
|
||
スレッドライブラリでは、
|
||
.Va bind
|
||
システムコールは
|
||
.Fn _thread_sys_bind
|
||
にアセンブルされ、
|
||
.Fn bind
|
||
は読取りと書込み用に
|
||
.Va s
|
||
をロックしてから、
|
||
.Fn _thread_sys_bind
|
||
を呼び出す
|
||
関数として実装されています。戻る前に、
|
||
.Fn bind
|
||
は
|
||
.Va s
|
||
をアンロックします。
|
||
.Sh 戻り値
|
||
バインドは成功すると値 0 を返します。戻り値 -1 はエラーを示し、
|
||
このエラーはグローバル
|
||
.Va errno
|
||
で指定されています。
|
||
.Sh エラー
|
||
.Fn bind
|
||
呼び出しは次の場合に失敗します。
|
||
.Bl -tag -width EADDRNOTAVA
|
||
.It Bq Er EBADF
|
||
.Fa s
|
||
が有効な記述子ではありません。
|
||
.It Bq Er ENOTSOCK
|
||
.Fa s
|
||
がソケットではありません。
|
||
.It Bq Er EADDRNOTAVAIL
|
||
指定のアドレスがローカルマシンから利用できません。
|
||
.It Bq Er EADDRINUSE
|
||
指定のアドレスは既に使用中です。
|
||
.It Bq Er EACCES
|
||
要求されたアドレスは保護されており、現在のユーザが持っているパーミッションは
|
||
それにアクセスするのには不適切です。
|
||
.It Bq Er EFAULT
|
||
.Fa addr
|
||
パラメータが有効なユーザアドレス空間ではありません。
|
||
.El
|
||
.Pp
|
||
次のエラーは UNIX ドメイン内のバインドアドレスに固有のものです。
|
||
.Bl -tag -width EADDRNOTAVA
|
||
.It Bq Er ENOTDIR
|
||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||
.It Bq Er ENAMETOOLONG
|
||
パス名の構成要素が 255 文字を越えているか、
|
||
またはパス名全体が 1023 文字を越えています。
|
||
.It Bq Er ENOENT
|
||
パス名の接頭辞構成要素が存在しません。
|
||
.It Bq Er ELOOP
|
||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||
.It Bq Er EIO
|
||
ディレクトリエントリを作成している間、または iノードを割り振りしている間に
|
||
入出力エラーが発生しました。
|
||
.It Bq Er EROFS
|
||
名前が読取り専用ファイルシステムに常駐します。
|
||
.It Bq Er EISDIR
|
||
空のパス名が指定されました。
|
||
.El
|
||
.Sh 関連項目
|
||
.Xr connect 2 ,
|
||
.Xr getsockname 2 ,
|
||
.Xr listen 2 ,
|
||
.Xr socket 2
|
||
.Sh 歴史
|
||
.Fn bind
|
||
関数は
|
||
.Bx 4.2
|
||
で登場しました。
|