日本語 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
VFORK(2) FreeBSD システムコールマニュアル VFORK(2) 名称 vfork -- アドレス空間をコピーせずに新しいプロセスを作成する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <unistd.h> pid_t vfork(void); 解説 この関数は、アプリケーションのソフトから正しく使用するのが難しいので、代 わりに、posix_spawn(3) または fork(2) を使用することを推奨します。 ページングされる環境で非能率的である、古いプロセスのアドレス空間を完全に コピーせずに、新しいプロセスを作成するために vfork() システムコールを使用 することができます。fork(2) の目的が execve(2) のための新システムコンテキ ストを作成することだったとき、役に立ちます。vfork() システムコールは、 (_exit(2) への呼び出しか、または異常終了のいずれかによって) execve(2) を 呼び出すか、または終了するまで、子プロセスが、親プロセスのアドレス空間と 呼び出しているスレッドのスタックを借りる点において、fork(2) と異なりま す。呼び出しているスレッドは、子プロセスが、そのリソースを使用している 間、サスペンドされます。他のスレッドは、実行し続けます。 vfork() システムコールは、子プロセスのコンテキストに、0 を返し、(その後) 親プロセスのコンテキストに子プロセスの pid を返します。 多くの問題は、fork(2) を vfork() と置き換えるときに起こるかもしれません。 例えば、それは、次に vfork() からの最終の返りが、もはやスタックフレームに 存在していない返りであるので、vfork() を呼び出した手続きから子プロセスの コンテキストで実行している間に、返るために動作しません。また、libthr(3) でのシグナルハンドラのようなユーザ空間で部分的に実装されるプロセス状態を 変更することは、親の状態を壊します。 また、execve(2) を呼び出すことができないなら、exit(3) は、標準 I/O チャネ ルをフラッシュして、クローズし、それによって、親プロセスの標準 I/O データ 構造を壊してしまうので、exit(3) ではなく _exit(2) を呼び出すことに注意し てください。(fork(2) と同様に、バッファリングされたデータは、次に 2 度フ ラッシュされるので、exit(3) を呼び出すことは間違いです。) 戻り値 fork(2) と同様です。 関連項目 _exit(2), execve(2), fork(2), rfork(2), sigaction(2), wait(2), exit(3), posix_spawn(3) 歴史 vfork() システムコールは、3BSD で登場しました。 バグ 起こり得るデッドロックの状況を回避するために、vfork() の途中で子どもであ るプロセスは、決して SIGTTOU または SIGTTIN シグナルを送信しません。それ どころか、出力または ioctl(2) 呼び出しは、許可され、入力の試みは、エンド オブファイル (end-of-file) 表示の結果となります。 FreeBSD 11.2 May 22, 2016 FreeBSD 11.2