BRK(2)

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

書式
#include <unistd.h>

int brk(void *end_data_segment);

void *sbrk(ptrdiff_t increment);

説明
brk は，データ・セグメント(data segment)の最後を end_data_segment で指定した値に設定する。 end_datasegment は，テキスト・セグメント(text segment)の最後より大きくなければならず， またスタックの最後より， 16kB 前でなければならない。 sbrk は，プログラムのデータ空間を increment バイトだけ増やす。 sbrk は，システム・コールではなく， C ライブラリにあるラッパー(wrapper)である。

返り値
成功した場合、 brk は 0 を返し， sbrk は，新しい領域の先頭へのポインタを返す。 エラーの場合には， -1 を返し， errno に ENOMEM を設定する。

準拠
BSD 4.3 brk と sbrk は C 規格(C Standard)には定義されていない、また POSIX.1 規格からは意図的に除外されている(段落 B.1.1.1.3, B.8.3.3 参照)。

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