.\" Modified Wed Jul 21 19:52:58 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified Sun Aug 21 17:40:38 1994 by Rik Faith <faith@cs.unc.edu>
.\"
-.\" Japanese Version Copyright (c) 1996 TABATA Tomohira
-.\" all rights reserved.
-.\" Translated Wed Jun 26 19:12:54 JST 1996
-.\" by TABATA Tomohira <loba@k2.t.u-tokyo.ac.jp>
-.\" Modified Sat Dec 13 23:43:56 JST 1997
-.\" by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated & Modified Wed May 19 01:55:29 JST 2004
-.\" by Yuichi SATO <ysato444@yahoo.co.jp>, LDP v1.66
-.\" Updated & Modified Tue Jan 2 09:09:47 JST 2007 by Yuichi SATO, LDP v2.43
-.\" Updated 2008-08-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.05
+.\"*******************************************************************
.\"
-.TH BRK 2 2010-09-20 "Linux" "Linux Programmer's Manual"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH BRK 2 2010\-09\-20 Linux "Linux Programmer's Manual"
.SH 名前
brk, sbrk \- データ・セグメントのサイズの変更する
.SH 書式
-.B #include <unistd.h>
+\fB#include <unistd.h>\fP
.sp
-.BI "int brk(void *" addr );
+\fBint brk(void *\fP\fIaddr\fP\fB);\fP
.sp
-.BI "void *sbrk(intptr_t " increment );
+\fBvoid *sbrk(intptr_t \fP\fIincrement\fP\fB);\fP
.sp
.in -4n
-glibc 向けの機能検査マクロの要件
-.RB ( feature_test_macros (7)
-参照):
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
.in
.sp
-.BR brk (),
-.BR sbrk ():
+\fBbrk\fP(), \fBsbrk\fP():
.ad l
.RS 4
.PD 0
-.TP 4
+.TP 4
glibc 2.12 以降:
.nf
_BSD_SOURCE || _SVID_SOURCE ||
(_XOPEN_SOURCE\ >=\ 500 ||
_XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600)
+.TP 4
.fi
-.TP 4
-glibc 2.12 より前:
-_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 ||
+glibc 2.12 より前: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 ||
_XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
.PD
.RE
.ad b
.SH 説明
-.BR brk ()
-と
-.BR sbrk ()
-は
-.I "プログラム・ブレーク (program break)"
-の場所を変更する。
-プログラム・ブレークはプロセスのデータ・セグメント (data segment) の
-末尾を示す (プログラム・ブレークは、初期化されていない
-データ・セグメントの末尾の直後の場所となる)。
-プログラム・ブレークを増やすということは、そのプロセスへの
-メモリを割り当てる効果があり、
-プログラム・ブレークを減らすということは、メモリを解放する
-ということである。
+\fBbrk\fP() と \fBsbrk\fP() は \fIプログラム・ブレーク (program break)\fP の場所を変更する。
+プログラム・ブレークはプロセスのデータ・セグメント (data segment) の 末尾を示す (プログラム・ブレークは、初期化されていない
+データ・セグメントの末尾の直後の場所となる)。 プログラム・ブレークを増やすということは、そのプロセスへの メモリを割り当てる効果があり、
+プログラム・ブレークを減らすということは、メモリを解放する ということである。
-.BR brk ()
-は、データ・セグメントの末尾を
-.I addr
-で指定した値に設定する。
-設定が行われるのは、指定した値が有効で、
-システムに十分なメモリがあり、
-プロセスのデータサイズの最大値を超えていない場合である
-.RB ( setrlimit (2)
-を参照)。
+\fBbrk\fP() は、データ・セグメントの末尾を \fIaddr\fP で指定した値に設定する。 設定が行われるのは、指定した値が有効で、
+システムに十分なメモリがあり、 プロセスのデータサイズの最大値を超えていない場合である (\fBsetrlimit\fP(2) を参照)。
-.BR sbrk ()
-は、プログラムのデータ空間を
-.I increment
-バイトだけ増やす。
-.I increment
-を 0 にして
-.BR sbrk ()
-を呼び出すことで、プログラムの現在のブレーク (break) 場所を知ることができる。
+\fBsbrk\fP() は、プログラムのデータ空間を \fIincrement\fP バイトだけ増やす。 \fIincrement\fP を 0 にして
+\fBsbrk\fP() を呼び出すことで、プログラムの現在のブレーク (break) 場所を知ることができる。
.SH 返り値
-成功した場合、
-.BR brk ()
-は 0 を返す。
-エラーの場合には、\-1 を返し、
-.I errno
-に
-.B ENOMEM
-を設定する
+成功した場合、 \fBbrk\fP() は 0 を返す。 エラーの場合には、\-1 を返し、 \fIerrno\fP に \fBENOMEM\fP を設定する
(ただし「LINUX での注意」を参照すること)。
-成功した場合、
-.BR sbrk ()
-は変更前のプログラム・ブレークを返す
-(プログラム・ブレークが増やされた場合、この値は
-新しく割り当てられたメモリの先頭を指すポインタとなる)。
-エラーの場合には、
-.I "(void\ *)\ \-1"
-を返し、
-.I errno
-に
-.B ENOMEM
-を設定する。
+成功した場合、 \fBsbrk\fP() は変更前のプログラム・ブレークを返す (プログラム・ブレークが増やされた場合、この値は
+新しく割り当てられたメモリの先頭を指すポインタとなる)。 エラーの場合には、 \fI(void\ *)\ \-1\fP を返し、 \fIerrno\fP に
+\fBENOMEM\fP を設定する。
.SH 準拠
-4.3BSD, SUSv1.
-SUSv2 では「過去の名残 (LEGACY)」と位置付けられており、
-POSIX.1-2001 で削除された。
+.\"
.\" .BR brk ()
-.\" と
+.\" and
.\" .BR sbrk ()
-.\" は C 規格 (C Standard) には定義されていない。
-.\" また POSIX.1 規格からは意図的に除外されている (段落 B.1.1.1.3, B.8.3.3 参照)。
+.\" are not defined in the C Standard and are deliberately excluded from the
+.\" POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
+4.3BSD, SUSv1. SUSv2 では「過去の名残 (LEGACY)」と位置付けられており、 POSIX.1\-2001 で削除された。
.SH 注意
-.BR brk ()
-や
-.BR sbrk ()
-を使用するのは避けること。
-.BR malloc (3)
-メモリ割り当てパッケージの方が、移植性が高く、
+\fBbrk\fP() や \fBsbrk\fP() を使用するのは避けること。 \fBmalloc\fP(3) メモリ割り当てパッケージの方が、移植性が高く、
使いやすいメモリ割り当て方法を提供している。
-いろいろなシステムにおいて、
-.BR sbrk ()
-の引き数に様々な型が使われている。
-一般的なのは \fIint\fP, \fIssize_t\fP, \fIptrdiff_t\fP, \fIintptr_t\fP である。
-.\" \fIint\fP (たとえば XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2),
+.\" One sees
+.\" \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2),
.\" \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5),
.\" \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1),
-.\" \fIintptr_t\fP (たとえば XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7,
-.\" NetBSD 1.6, Tru64 5.1, glibc2.2).
-.\" というのが分かるだろう。
-.SS Linux での注意
-上で説明した
-.BR brk ()
-の返り値についての動作は、
-Linux の
-.BR brk ()
-システムコールをラップする glibc の関数によるものである。
-(その他の多くの実装でも、
-.BR brk ()
-の返り値はこれと同じである。
-この返り値は SUSv2 でも規定されている。)
-しかし、実際の Linux システムコールは、成功した場合、
-プログラムの新しいブレークを返す。
-失敗した場合、このシステムコールは現在のブレークを返す。
-glibc ラッパー関数は同様の働きをし
-(すなわち、新しいブレークが
-.I addr
-より小さいかどうかをチェックし)、
-上で説明した 0 と \-1 という返り値を返す。
+.\" \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6,
+.\" Tru64 5.1, glibc2.2).
+いろいろなシステムにおいて、 \fBsbrk\fP() の引き数に様々な型が使われている。 一般的なのは \fIint\fP, \fIssize_t\fP,
+\fIptrdiff_t\fP, \fIintptr_t\fP である。
+.SS "Linux での注意"
+上で説明した \fBbrk\fP() の返り値についての動作は、 Linux の \fBbrk\fP() システムコールをラップする glibc
+の関数によるものである。 (その他の多くの実装でも、 \fBbrk\fP() の返り値はこれと同じである。 この返り値は SUSv2 でも規定されている。)
+しかし、実際の Linux システムコールは、成功した場合、 プログラムの新しいブレークを返す。
+失敗した場合、このシステムコールは現在のブレークを返す。 glibc ラッパー関数は同様の働きをし (すなわち、新しいブレークが \fIaddr\fP
+より小さいかどうかをチェックし)、 上で説明した 0 と \-1 という返り値を返す。
-Linux では
-.BR sbrk ()
-は
-.BR brk ()
-システムコールを使うライブラリ関数として実装されており、
+Linux では \fBsbrk\fP() は \fBbrk\fP() システムコールを使うライブラリ関数として実装されており、
以前のブレークの値を返すことができるように内部で調整が行われている。
.SH 関連項目
-.BR execve (2),
-.BR getrlimit (2),
-.BR end (3),
-.BR malloc (3)
+\fBexecve\fP(2), \fBgetrlimit\fP(2), \fBend\fP(3), \fBmalloc\fP(3)