日本語 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
FORK(2) FreeBSD システムコールマニュアル FORK(2) 名称 fork -- 新しいプロセスを作成する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <unistd.h> pid_t fork(void); 解説 fork() システムコールは、新しいプロセスの生成を行います。新しいプロセス (子プロセス) は、次を除いて呼び出しているプロセス (親プロセス) の正確なコ ピーです: • 子プロセスには、ユニークなプロセス ID があります。 • 子プロセスには、異なる親プロセス ID があります (すなわち、親プ ロセスのプロセス ID)。 • 子プロセスには、親プロセスから継承されない kqueue(2) によって返 された記述子を除いて、親の記述子のそれ自体のコピーがあります。 これらの記述子は、同じ根本的なオブジェクトを参照します、つまり それは、例えば、ファイルオブジェクトのファイルポインタが、子プ ロセスと親プロセスの間で共有され、その結果、子プロセスの記述子 で lseek(2) することは、親プロセスでその後の read(2) または write(2) に影響するかもしれません。また、この記述子のコピーは、 パイプをセットアップするのと同様に、新しく作成されたプロセスの ための標準入力と出力を確立するためにシェルによって使用されま す。 • 子プロセスのリソースの利用は、0 に設定されます。setrlimit(2) を 参照してください。 • すべてのインターバルタイマは、クリアされます。setitimer(2). を 参照してください。 • 子プロセスには、親プロセスで呼び出しているスレッドに対応する、 ただ 1 つのスレッドがあります。プロセスに 2 つを以上のスレッド があるなら、ロックされ、他のスレッドによって保持された他のリ ソースは、解放されません、したがって、非同期シグナルにセーフな 関数 (sigaction(2) を参照) だけが execve(2) または同様の関数を 呼び出すまで子プロセスで動作することが保証されます。 戻り値 成功して完了すれば、fork() は、子プロセスに 0 の値を返し、親プロセスに子 プロセスのプロセス ID を返します。そうでなければ、-1 の値が親プロセスに返 され、子プロセスは、作成されず、グローバル変数 errno は、エラーを示す値が 設定されます。 エラー fork() システムコールは、次の場合に失敗し、子プロセスは、作成されません: [EAGAIN] 実行に基づくプロセスの合計数のシステムの制限が超過しま した。制限は、sysctl(3) MIB 変数 KERN_MAXPROC によって 与えられます。(制限は、スーパユーザを除いて、この値未 満の実際に 10 です)。 [EAGAIN] ユーザがスーパユーザでなく、シングルユーザによって実行 に基づくプロセスの合計数でシステムの制限が超過しまし た。制限は、sysctl(3) MIB 変数 KERN_MAXPROCPERUID に よって与えられます。 [EAGAIN] ユーザがスーパユーザでなく、resource 引数 RLIMIT_NPROC に対応するソフトリソース制限が超過しました (getrlimit(2) を参照)。 [ENOMEM] 新しいプロセスのための十分なスワップ領域がありません。 関連項目 execve(2), rfork(2), setitimer(2), setrlimit(2), sigaction(2), vfork(2), wait(2) 歴史 fork() 関数は、Version 6 AT&T UNIX で登場しました。 FreeBSD 11.2 May 1, 2015 FreeBSD 11.2