OSDN Git Service

(split) LDP: Update release pages
[linuxjm/LDP_man-pages.git] / release / man2 / brk.2
index c9d764b..eddfdbe 100644 (file)
@@ -1,9 +1,8 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" Copyright (c) 1993 Michael Haardt
 .\" (michael@moria.de),
 .\" Fri Apr  2 11:32:09 MET DST 1993
 .\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
 .\" published by the Free Software Foundation; either version 2 of
 .\" GNU General Public License for more details.
 .\"
 .\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
 .\"
 .\" 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>
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1996 TABATA Tomohira
 .\"         all rights reserved.
 .\" Translated Wed Jun 26 19:12:54 JST 1996
 .\" 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"
-.SH Ì¾Á°
-brk, sbrk \- ¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤ÎÊѹ¹¤¹¤ë
-.SH ½ñ¼°
-.B #include <unistd.h>
+.TH BRK 2 2010\-09\-20 Linux "Linux Programmer's Manual"
+.SH 名前
+brk, sbrk \- データセグメントのサイズの変更する
+.SH 書式
+\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
-glibc 2.12 °Ê¹ß:
+.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) ¤Î
-ËöÈø¤ò¼¨¤¹ (¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤Ï¡¢½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤
-¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤ÎËöÈø¤Îľ¸å¤Î¾ì½ê¤È¤Ê¤ë)¡£
-¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤òÁý¤ä¤¹¤È¤¤¤¦¤³¤È¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤Ø¤Î
-¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¸ú²Ì¤¬¤¢¤ê¡¢
-¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤ò¸º¤é¤¹¤È¤¤¤¦¤³¤È¤Ï¡¢¥á¥â¥ê¤ò²òÊü¤¹¤ë
-¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£
+.SH 説明
+\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) ¾ì½ê¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¡¢
-.BR brk ()
-¤Ï 0 ¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢\-1 ¤òÊÖ¤·¡¢
-.I errno
-¤Ë
-.B ENOMEM
-¤òÀßÄꤹ¤ë
-(¤¿¤À¤·¡ÖLINUX ¤Ç¤ÎÃí°Õ¡×¤ò»²¾È¤¹¤ë¤³¤È)¡£
+\fBsbrk\fP()  は、プログラムのデータ空間を \fIincrement\fP バイトだけ増やす。 \fIincrement\fP を 0 にして
+\fBsbrk\fP()  を呼び出すことで、プログラムの現在のブレーク (break) 場所を知ることができる。
+.SH 返り値
+成功した場合、 \fBbrk\fP()  は 0 を返す。 エラーの場合には、\-1 を返し、 \fIerrno\fP に \fBENOMEM\fP を設定する
+(ただし「LINUX での注意」を参照すること)。
 
-À®¸ù¤·¤¿¾ì¹ç¡¢
-.BR sbrk ()
-¤ÏÊѹ¹Á°¤Î¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤òÊÖ¤¹
-(¥×¥í¥°¥é¥à¡¦¥Ö¥ì¡¼¥¯¤¬Áý¤ä¤µ¤ì¤¿¾ì¹ç¡¢¤³¤ÎÃͤÏ
-¿·¤·¤¯³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ÎÀèƬ¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤È¤Ê¤ë)¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢
-.I "(void\ *)\ \-1"
-¤òÊÖ¤·¡¢
-.I errno
-¤Ë
-.B ENOMEM
-¤òÀßÄꤹ¤ë¡£
-.SH ½àµò
-4.3BSD, SUSv1.
-SUSv2 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤ª¤ê¡¢
-POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£
+成功した場合、 \fBsbrk\fP()  は変更前のプログラムブレークを返す (プログラムブレークが増やされた場合、この値は
+新しく割り当てられたメモリの先頭を指すポインタとなる)。 エラーの場合には、 \fI(void\ *)\ \-1\fP を返し、 \fIerrno\fP に
+\fBENOMEM\fP を設定する。
+.SH 準拠
+.\"
 .\" .BR brk ()
-.\" ¤È
+.\" and
 .\" .BR sbrk ()
-.\" ¤Ï C µ¬³Ê (C Standard) ¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-.\" ¤Þ¤¿ POSIX.1 µ¬³Ê¤«¤é¤Ï°Õ¿ÞŪ¤Ë½ü³°¤µ¤ì¤Æ¤¤¤ë (ÃÊÍî B.1.1.1.3, B.8.3.3 »²¾È)¡£
-.SH Ãí°Õ
-.BR brk ()
-¤ä
-.BR sbrk ()
-¤ò»ÈÍѤ¹¤ë¤Î¤ÏÈò¤±¤ë¤³¤È¡£
-.BR malloc (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 注意
+\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 ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢
-°ÊÁ°¤Î¥Ö¥ì¡¼¥¯¤ÎÃͤòÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤ËÆâÉô¤ÇÄ´À°¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR execve (2),
-.BR getrlimit (2),
-.BR end (3),
-.BR malloc (3)
+Linux では \fBsbrk\fP()  は \fBbrk\fP()  システムコールを使うライブラリ関数として実装されており、
+以前のブレークの値を返すことができるように内部で調整が行われている。
+.SH 関連項目
+\fBexecve\fP(2), \fBgetrlimit\fP(2), \fBend\fP(3), \fBmalloc\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。