table of contents
other sections
BRK(2) | Linux-Programmierhandbuch | BRK(2) |
BEZEICHNUNG¶
brk, sbrk - Datensegmentgröße ändernÜBERSICHT¶
#include <unistd.h>Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
- 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() ändern 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 vergrößern hat die Auswirkung, dass für den Prozess Speicher reserviert wird; den Break zu verkleinern gibt reservierten Speicher frei.RÜCKGABEWERT¶
Bei Erfolg gibt brk Null zurück. Im Fehlerfall wird -1 zurückgegeben und errno auf ENOMEM gesetzt. (Lesen sie aber die Linux-Anmerkungen unten.)KONFORM ZU¶
4.3BSD; SUSv1, in SUSv2 als ALTLAST gekennzeichnet, in POSIX.1-2001 entferntANMERKUNGEN¶
Vermeiden Sie die Benutzung von brk() und sbrk(): Das Speicherreservierungspaket malloc(3) ist portabel und stellt eine komfortable Möglichkeit der Speicherreservierung bereit.Linux-Anmerkungen¶
Der oben beschriebene Rückgabewert für brk() stellt das durch die Glibc-Wrapper-Funktion bereitgestellte Verhalten für den Linux-Systemaufruf brk() bereit. (In den meisten anderen Implementierungen hat brk() den gleichen Rückgabewert; dieser Rückgabewert wurde auch in SUSv2 angegeben.) Der tatsächliche Linux-Systemaufruf gibt allerdings bei Erfolg den neuen Program-Break zurück. Bei Misserfolg gibt der Systemaufruf den aktuellen Break zurück. Die Glibc-Wrapper-Funktion tut dasselbe (d.h. sie prüft, ob der neue Break kleiner als adresse ist), um die Rückgabewerte 0 und -1 wie oben beschrieben zurückzugeben.SIEHE AUCH¶
execve(2), getrlimit(2), end(3), malloc(3)KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net> und Chris Leick <c.leick@vollbio.de> erstellt.20. September 2010 | Linux |