FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 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 は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | ライブラリ | 書式 | 解説 | | 戻り値 | エラー | 関連項目 | 歴史 | バグ
BRK(2)                 FreeBSD システムコールマニュアル                 BRK(2)

名称
     brk, sbrk -- データセグメントのサイズを変更する

ライブラリ
     標準 C ライブラリ (libc, -lc)

書式
     #include <unistd.h>

     int
     brk(const void *addr);

     void *
     sbrk(intptr_t incr);

解説
     brk()  sbrk() 関数は、現代の仮想メモリ管理の出現の前の古いインタフェー
     スです。それらは、arm64 または riscv アーキテクチャに存在せず、推奨されま
     せん。mmap(2) インタフェースは、代わりにページを割り付けるために使用され
     るべきです。

     brk() と sbrk() 関数は、プロセスのデータセグメントに割り付けられるメモリ
     の量を変更するために使用されます。それらは、``break'' の位置を移動するこ
     とによってこれを行います。ブレークは、プロセスの初期化されないデータセグ
     メントの終わりの後の最初のアドレスです (また、``BSS'' として知られていま
     す)。

     brk() 関数は、ブレークを addr に設定します。

     sbrk() 関数は、incr バイトによってブレークを起こし、したがって、少なくと
     も incr バイトの新しいメモリをデータセグメントの割り付けます。incr が負で
     あるなら、ブレークは、incr バイトずつ減されます。


     カーネルによって管理される実際のプロセスデータのセグメントサイズは、ペー
     ジサイズの単位で増加するか、または縮小し、これらの関数は、整列されない値
     にブレークを設定することを許可します (すなわち、それは、データセグメント
     の最後のページ内のあらゆるアドレスを指すことができます)。

     プログラムのブレークの現在の値は、sbrk(0) を呼び出すことによって決定でき
     ます。また end(3) を参照してください。

     getrlimit(2) システムコールは、データセグメントの最大の許容されているサイ
     ズを決定するために使用されます。``etext + rlim.rlim_max'' を越えるブレー
     クを設定することはできません、ここで、rlim.rlim_max 値は、
     getrlimit(RLIMIT_DATA, &rlim) への呼び出しから返されます。(etext の定義に
     ついては、end(3) を参照してください)。

戻り値
     関数 brk() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が
     返され、グローバル変数 errno にエラーを示す値が設定されます。

     sbrk() 関数は、成功するなら、以前のブレーク値を返します。そうでなければ、
     値 (void *)-1 が返され、グローバル変数 errno は、エラーを示す値に設定され
     ます。

エラー
     brk() と sbrk() 関数は、次の場合に失敗します:

     [EINVAL]           要求されたブレーク値がデータセグメントの最初を越えまし
                        た。

     [ENOMEM]           setrlimit(2) によって設定されるデータセグメントのサイ
                        ズの制限が越えました。

     [ENOMEM]           データセグメントの拡張をサポートするためのスワップ領域
                        に存在する空間が不足しています。

関連項目
     execve(2), getrlimit(2), mmap(2), end(3), free(3), malloc(3)

歴史
     brk() 関数は、Version 7 AT&T UNIX で登場しました。FreeBSD 11.0 は、brk()
     または sbrk() をサポートしない arm64 と riscv アーキテクチャを導入しまし
     た。

バグ
     malloc(3), free(3) または同様な関数と brk() または sbrk() を混合すること
     は、移植性のないプログラムの振る舞いの結果となります。

     ブレークを設定することは、スワップ空間の一時的な不足のため失敗するかもし
     れません。これは、getrlimit(2) で調べずにデータセグメントの最大のサイズを
     越えることによって起こされる失敗と区別することができません。

     sbrk() は、0 の引数で呼び出すことによってヒープ (heap) を監視するために、
     時々使用されます。結果は、mmap(2) 基づいた malloc と組み合わせて実際の利
     用を反映することはありそうもありません。

     brk() と sbrk() は、スレッドセーフではありません。

FreeBSD 12.1                     June 2, 2018                     FreeBSD 12.1

Table of Contents

FreeBSD マニュアル検索