日本語 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
MINHERIT(2) FreeBSD システムコールマニュアル MINHERIT(2) 名称 minherit -- ページの継承を制御する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/mman.h> int minherit(void *addr, size_t len, int inherit); 解説 minherit() システムコールは、継承の特性 inherit を持つ指定されたページを 変更します。すべての実装は、継承の特性がページ単位で設定することができる ことを保証するとは限りません。変更の粒度は、全体の領域と同じ大きさかもし れません。FreeBSD は、ページ単位で継承の特性を調整することができます。継 承は、fork() によって作成された子プロセスのみ影響します。それは、exec() に影響がありません。exec されたプロセスは、それらのアドレス空間を完全に置 き換えます。また、このシステムコールは、(その子プロセスでアドレス空間を潜 在的に共有すること以外に) 親プロセスのアドレス空間に影響がありません。 継承は、mmap() の MAP_SHARED 機能によって大部分取って代えられる大部分は 取って代わられたかなり難解な機能です。しかしながら、マップされた MAP_PRIVATE であった親プロセスと子プロセスの間のメモリのブロックを共有す るために minherit() を使用することが可能です。すなわち、親プロセスまたは 子プロセスによって行われた修正は、共有されますが、オリジナルの基本的な ファイルは、修正されないままとなります。 INHERIT_SHARE このオプションによって、問題のアドレス空間は、親プロセスと 子プロセスの間で共有されます。それは、オリジナルの基本的な 外部記憶装置がどのようにマップされたかに影響されません。 INHERIT_NONE このオプションは、問題のアドレス空間が継承されることを完全 に防ぎます。アドレス空間は、子プロセスでマップされません。 INHERIT_COPY このオプションによって、子プロセスは、コピーオンライト (copy-on-write) としてアドレス空間を継承します。また、この オプションは、親プロセスが fork するとき、親プロセスのアド レス空間をコピーオンライト (copy-on-write) とする不運な副 作用があります。オリジナルのマップが MAP_SHARED であったな ら、それは、親プロセスの forkの後に、もはや親プロセスで共 有されず、親プロセスのアドレス空間をアンマップと再マップせ ずに、以前の共有された外部記憶装置のマップを取得する方法は ありません。 INHERIT_ZERO このオプションによって、問題のアドレス空間は、子プロセス で、すべての 0 のバイトで初期化された新しい anonymous (匿 名の) ページとしてマップされます。 戻り値 関数 minherit() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno にエラーを示す値が設定されます。 エラー minherit() システムコールは、次の場合に失敗します: [EINVAL] addr と len 引数によって指定された仮想アドレス範囲が有 効ではありません。 [EACCES] inherit 引数によって指定されたフラグが、addr と len 引 数によって指定されたページに対して有効ではありませんで した。 関連項目 fork(2), madvise(2), mincore(2), mprotect(2), msync(2), munmap(2), rfork(2) 歴史 minherit() システムコールは、OpenBSD と、次に FreeBSD 2.2 ではじめて登場 しました。 INHERIT_ZERO のサポートは、OpenBSD 5.6 ではじめて登場し、そして FreeBSD 12.0 ではじめて登場しました。 バグ いったん、利用者が継承を MAP_PRIVATE または MAP_SHARED に設定すると、領域 をアンマップして、再マップすること以外にオリジナルのコピーオンライト (copy-on-write) セマンティクスを復旧する方法はありません。 FreeBSD 11.2 March 15, 2017 FreeBSD 11.2