日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
ACCEPT(2) FreeBSD システムコールマニュアル ACCEPT(2) 名称 accept, accept4 -- ソケットで接続を受け付ける ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/types.h> #include <sys/socket.h> int accept(int s, struct sockaddr * restrict addr, socklen_t * restrict addrlen); int accept4(int s, struct sockaddr * restrict addr, socklen_t * restrict addrlen, int flags); 解説 引数 s は、socket(2) で作成されたソケットで、bind(2) でアドレスにバインド され、listen(2) の後に接続を listen (接続を受け付け) しています。accept() システムコールは、保留中の接続のキューで最初の接続要求を抽出し、新しいソ ケットを作成し、O_NONBLOCK と O_ASYNC プロパティの状態とオリジナルのソ ケット s からの SIGIO と SIGURG シグナルの宛先を継承するソケットのための 新しいファイル記述子を割り付けます。 accept4() システムコールも似ていますが、新しいソケットの O_NONBLOCK プロ パティは、代りに、flags 引数の SOCK_NONBLOCK フラグによって決定され、 O_ASYNC プロパティは、クリアされ、シグナルの宛先は、クリアされ、新しい ファイル記述子の close-on-exec フラグを flags 引数の SOCK_CLOEXEC フラグ によって設定することができます。 保留中の接続がキューに存在せず、オリジナルのソケットが非ブロッキングと マークされていないなら、accept() は、接続が完成するまで、呼び出し側をブ ロックします。オリジナルのソケットが非ブロッキングとマークされ、保留中の 接続がキューに存在しないなら、accept() は、下記に記述されているようにエ ラーを返します。受け付けられたソケットは、より多くの接続を受け付けるため には使用されません。オリジナルのソケット s は、オープンしたままです。 引数 addr は、通信レイヤ (層) に知られている、接続している実体 (entity) のアドレスで埋められる結果の引数です。addr 引数の正確な形式は、通信が生じ ているドメインによって決定されます。アドレス情報が要求されていないなら、 NULL ポインタが、addr のために指定されます。この場合、addrlen は、使用さ れず、また、NULL であるべきです。そうでなければ、addrlen 引数は、値と結果 (value-result) の引数です。最初に addr によって指される空間の合計を含んで いるべきです。返り時に、返されるアドレスの実際の長さ (バイト単位で) を含 んでいます。この呼び出しは、現在 SOCK_STREAM とともに接続に基づいたソケッ トタイプで使用されます。 読み込みのためにそれを選択することによって、accept() を行う目的のためのソ ケットを select(2) することができます。 ISO または DATAKIT のような明白な確認を要求する特定のプロトコルに関して、 accept() は、次の接続要求のキューをただ解除し、確認の意味がないと考えるこ とができます。確認は、新しいファイル記述子で通常の読み込みまたは書き込み によって、意味をなし、拒絶は、新しいソケットをクローズすることによって、 意味をなします。 いくつかのアプリケーションについて、着信接続を前処理 (pre-process) するた めに accept_filter(9) を使用することによって性能が増強されます。 accept() を使用するとき、O_NONBLOCK と O_ASYNC プロパティと継承されている シグナルの宛先に依存するべきではありませんが、明示的に fcntl(2) を使用し て、それらを設定するべきです。accept4() は、一貫して、これらのプロパティ を設定しますが、UNIX プラットフォームに渡って完全に移植性があるこは限りま せん。 戻り値 これらの呼び出しは、エラーのとき、-1 を返します。成功するなら、それらは、 受け付けされたソケットのための記述子である負でない整数を返します。 エラー accept() と accept4() システムコールは、次の場合に失敗します: [EBADF] 記述子が無効です。 [EINTR] accept() 操作が割り込まれました。 [EMFILE] プロセスごとの記述子のテーブルが満杯です。 [ENFILE] システムファイルテーブルが満杯です。 [ENOTSOCK] ファイルを参照している記述子が、ソケットではありませ ん。 [EINVAL] listen(2) がソケット記述子で呼び出されていません。 [EFAULT] addr 引数がユーザアドレス空間の書み込み可能な部分では ありません。 [EWOULDBLOCK] または [EAGAIN] ソケットが非ブロッキングとマークされ、受け付けられる接 続が、存在しません。 [ECONNABORTED] 接続が到着しましたが、listen (接続を受け付け) する キューで待っている間にクローズされました。 また、accept4() システムコールは、次の場合に失敗します: [EINVAL] flags 引数が不正です。 関連項目 bind(2), connect(2), getpeername(2), getsockname(2), listen(2), select(2), socket(2), accept_filter(9) 歴史 accept() システムコールは、4.2BSD で登場しました。 accept4() システムコールは、FreeBSD 10.0 で登場しました。 FreeBSD 11.2 October 9, 2014 FreeBSD 11.2