Provided by:
manpages-de-dev_0.10-1_all 
BEZEICHNUNG
brk, sbrk - DatensegmentgroBe andern
"UBERSICHT
#include <unistd.h>
int brk(void *adresse);
void *sbrk(intptr_t erhoehung);
Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
brk(), sbrk():
Seit Glibc 2.12:
_BSD_SOURCE || _SVID_SOURCE ||
(_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
Bis Glibc 2.12: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500
||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
BESCHREIBUNG
brk() und sbrk() andern den Ort des program break, der das Ende des
Datensegments des Prozesses definiert (d.h. der Program-Break ist der
erste Ort nach dem Ende des nicht initialisierten Datensegments). Den
Program-Break zu vergroBern hat die Auswirkung, dass fur den Prozess
Speicher reserviert wird; den Break zu verkleinern gibt reservierten
Speicher frei.
brk setzt das Ende des Datensegments auf den Wert, der durch adresse
angegeben ist. Wenn dieser Wert vernunftig ist, hat das System genug
Speicher und der Prozess uberschreitet nicht seine maximale DatengroBe
(siehe setrlimit(2)).
sbrk vergroBert den Datenbereich des Programms um erhoehung Byte. Der
Aufruf von sbrk mit einer erhoehung von 0 kann zum Auffinden des
aktuellen Ortes des Program-Breaks benutzt werden.
R"UCKGABEWERT
Bei Erfolg gibt brk Null zuruck. Im Fehlerfall wird -1 zuruckgegeben
und errno auf ENOMEM gesetzt. (Lesen sie aber die Linux-Anmerkungen
unten.)
Bei Erfolg gibt brk den vorherigen Program-Break zuruck. (Falls der
Break erhoht wurde, ist dieser Wert ein Zeiger auf den Anfang des neu
reservierten Speichers). Im Fehlerfall wird (void *) -1 zuruckgegeben
und errno auf ENOMEM gesetzt.
KONFORM ZU
4.3BSD; SUSv1, in SUSv2 als ALTLAST gekennzeichnet, in POSIX.1-2001
entfernt
ANMERKUNGEN
Vermeiden Sie die Benutzung von brk() und sbrk(): Das
Speicherreservierungspaket malloc(3) ist portabel und stellt eine
komfortable Moglichkeit der Speicherreservierung bereit.
Verschiedene Systeme benutzen verschieden Typen fur das Argument von
sbrk(). Ublich sind int, ssize_t, ptrdiff_t und intptr_t.
Linux-Anmerkungen
Der oben beschriebene Ruckgabewert fur brk() stellt das durch die
Glibc-Wrapper-Funktion bereitgestellte Verhalten fur den
Linux-Systemaufruf brk() bereit. (In den meisten anderen
Implementierungen hat brk() den gleichen Ruckgabewert; dieser
Ruckgabewert wurde auch in SUSv2 angegeben.) Der tatsachliche
Linux-Systemaufruf gibt allerdings bei Erfolg den neuen Program-Break
zuruck. Bei Misserfolg gibt der Systemaufruf den aktuellen Break
zuruck. Die Glibc-Wrapper-Funktion tut dasselbe (d.h. sie pruft, ob der
neue Break kleiner als adresse ist), um die Ruckgabewerte 0 und -1 wie
oben beschrieben zuruckzugeben.
Auf Linux ist sbrk() als Bibliotheksfunktion implementiert, die den
Systemaufruf brk() benutzt und ein wenig interne Buchfuhrung erledigt,
so dass sie den alten Break-Wert zuruckgeben kann.
SIEHE AUCH
execve(2), getrlimit(2), end(3), malloc(3)
KOLOPHON
Diese Seite ist Teil der Veroffentlichung 3.32 des Projekts
Linux-man-pages. Eine Beschreibung des Projekts und Informationen, wie
Fehler gemeldet werden konnen, finden sich unter
http://www.kernel.org/doc/man-pages/.
"UBERSETZUNG
Die deutsche Ubersetzung dieser Handbuchseite wurde von Patrick Rother
<krd@gulu.net> und Chris Leick <c.leick@vollbio.de> erstellt.
Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General
Public License Version 3 oder neuer bezuglich der Copyright-
Bedingungen. Es wird KEINE HAFTUNG ubernommen.
Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an <debian-l10n-
german@lists.debian.org>.