diff options
Diffstat (limited to 'documentation/manual-pages/ja/man2/accept.2')
-rw-r--r-- | documentation/manual-pages/ja/man2/accept.2 | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man2/accept.2 b/documentation/manual-pages/ja/man2/accept.2 new file mode 100644 index 0000000000..dfda258c48 --- /dev/null +++ b/documentation/manual-pages/ja/man2/accept.2 @@ -0,0 +1,170 @@ +.\" Copyright (c) 1983, 1990, 1991, 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. +.\" +.\" @(#)accept.2 8.2 (Berkeley) 12/11/93 +.\" %FreeBSD: src/lib/libc/sys/accept.2,v 1.30 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd December 11, 1993 +.Dt ACCEPT 2 +.Os +.Sh 名称 +.Nm accept +.Nd ソケット上の接続を受け入れる +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn accept "int s" "struct sockaddr * restrict addr" "socklen_t * restrict addrlen" +.Sh 解説 +引数 +.Fa s +は +.Xr socket 2 +で作成され、 +.Xr bind 2 +でアドレスにバインドされ、 +.Xr listen 2 +も済ませて接続を待ち受けているソケットです。 +.Fn accept +システムコールは、待ち行列上の最初の接続要求を取り出し、 +新しいソケットを作成し、オリジナルのソケット +.Fa s +から +.Dv O_NONBLOCK +プロパティの状態を継承した +そのソケットへ新しいファイル記述子を割り当てます。 +.Pp +接続要求が待ち行列上に存在せず、 +しかもオリジナルのソケットが非ブロッキングとマークされていない場合、 +.Fn accept +は接続要求があるまで呼び出し側をブロックします。 +オリジナルのソケットが非ブロッキングとマークされており、 +しかも待ち行列に接続要求が存在しない場合、 +.Fn accept +は後述のようにエラーを返します。 +接続が成立したソケットは、それ以上の接続を受け入れるために +使用できません。 +オリジナルのソケット +.Fa s +は開いたままです。 +.Pp +引数 +.Fa addr +は結果の引数で、 +通信レイヤに既知の接続エンティティのアドレスで埋められます。 +.Fa addr +引数の正確な形式は通信が行われるドメインで決まります。 +アドレス情報が要望されない場合には、 +.Fa addr +にヌルポインタを指定することができます。 +この場合は +.Fa addrlen +は使用されず、これもヌルであるべきです。 +そうでない場合には +.Fa addrlen +は、値と結果の引数です。 +これは最初は +.Fa addr +が指す空間のサイズを含んでいなければなりません。 +戻り時には、返されるアドレスの実際の長さ (バイト単位) を含むことになります。 +この呼び出しは、コネクションをベースとしたソケットタイプ、 +現在では +.Dv SOCK_STREAM +とともに使用されます。 +.Pp +読取りでソケットを +.Xr select 2 +することによって、 +.Fn accept +するソケットを選ぶことができます。 +.Pp +.Tn ISO +または +.Tn DATAKIT +のような明瞭な確認が必要な特定のプロトコルでは、 +.Fn accept +は単に次の接続要求を待ち行列から除くだけで、 +確認は行わないと考えられます。 +確認は、新しいファイル記述子についての +通常の読取りまたは書込みによって行うことができ、 +拒絶は新しいソケットを閉じる事によって実現できます。 +.Pp +ある種のアプリケーションにおいては、内向きの接続を +.Xr accept_filter 9 +で前処理することにより、性能が向上するかもしれません。 +.Sh 戻り値 +システムコールはエラーがあった場合 \-1 を返します。 +処理が正常に完了した場合、受け付けたソケットの +記述子である非負整数を返します。 +.Sh エラー +.Fn accept +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +記述子が有効ではありません。 +.It Bq Er EINTR +.Fn accept +操作が割り込まれました。 +.It Bq Er EMFILE +プロセスの記述子テーブルが満杯です。 +.It Bq Er ENFILE +システムファイルテーブルが満杯です。 +.It Bq Er ENOTSOCK +記述子がファイルを参照しておりソケットではありません。 +.It Bq Er EINVAL +.Xr listen 2 +がソケット記述子に対して呼び出されていません。 +.It Bq Er EFAULT +.Fa addr +引数がユーザアドレス空間の書込み可能な部分にありません。 +.It Bq Er EWOULDBLOCK +ソケットが非ブロッキングとマークされ、さらに +受け付けるべき接続要求が存在しません。 +.It Bq Er ECONNABORTED +接続要求が到着しましたが、待ち行列で待機している +間に閉じてしまいました。 +.El +.Sh 関連項目 +.Xr bind 2 , +.Xr connect 2 , +.Xr getpeername 2 , +.Xr listen 2 , +.Xr select 2 , +.Xr socket 2 , +.Xr accept_filter 9 +.Sh 歴史 +.Fn accept +システムコールは +.Bx 4.2 +で登場しました。 |