aboutsummaryrefslogtreecommitdiff
path: root/documentation/manual-pages/ja/man2/accept.2
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/manual-pages/ja/man2/accept.2')
-rw-r--r--documentation/manual-pages/ja/man2/accept.2170
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
+で登場しました。