|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
プログラムで使用されていない最小の仮想アドレスを判断します。
形式
#include <stdlib.h>
void *brk (unsigned long int addr);
引数
addr最小アドレス。このアドレスがページ・サイズの次の倍数に切り上げられます。この切り上げられたアドレスを
区切りアドレスと呼びます。
説明
区切りアドレス値に等しいかそれより大きく,スタック・ポインタより小さいアドレスは,プログラムのアドレス空間の外部にあると解釈されます。このようなアドレスを参照しようとすると,アクセス違反が発生します。
プログラムを実行する場合,区切りアドレスは,プログラム記憶域およびデータ記憶域によって定義される最大記憶位置に設定されます。したがって,
brk関数は,データ領域を拡大するプログラムでのみ必要です。
戻り値
n
|
新しい区切りアドレス。
|
(void *)( - 1)
|
プログラムが要求しているメモリ容量が多すぎることを示します。
errno
と
vaxc$errno
が更新されます。
|
制限事項 | |
他の C ライブラリの実装と異なり,
HP C RTL のメモリ割り当て関数 (
mallocなど) では,プログラム・ヒープ空間の管理で
brkや
sbrkに依存していません。したがって,OpenVMS システムで
brkまたは
sbrkを呼び出すと,メモリ割り当てルーチンを妨害する可能性があります。
brk関数と
sbrk関数が提供されるのは,互換性を維持するためだけです。
|