"Fossies" - the Fresh Open Source Software archive 
Member "manpages-de-0.11/generated/man2/brk.2" of archive manpages-de_0.11.orig.tar.gz:
BRK
Section: Linux\-Programmierhandbuch (2)
Updated: 20. September 2010
Index
BEZEICHNUNG
brk, sbrk - Datensegmentgröße ändern
ÜBERSICHT
#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() ä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.
brk setzt das Ende des Datensegments auf den Wert, der durch adresse
angegeben ist. Wenn dieser Wert vernünftig ist, hat das System genug
Speicher und der Prozess überschreitet nicht seine maximale Datengröße
(siehe setrlimit(2)).
sbrk vergrößert 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Ü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.)
Bei Erfolg gibt brk den vorherigen Program-Break zurück. (Falls der Break
erhöht wurde, ist dieser Wert ein Zeiger auf den Anfang des neu reservierten
Speichers). Im Fehlerfall wird (void *) -1 zurückgegeben 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 Möglichkeit der Speicherreservierung bereit.
Verschiedene Systeme benutzen verschieden Typen für das Argument von
sbrk(). Üblich sind int, ssize_t, ptrdiff_t und intptr_t.
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.
Auf Linux ist sbrk() als Bibliotheksfunktion implementiert, die den
Systemaufruf brk() benutzt und ein wenig interne Buchführung erledigt, so
dass sie den alten Break-Wert zurückgeben kann.
SIEHE AUCH
execve(2), getrlimit(2), end(3), malloc(3)
KOLOPHON
Diese Seite ist Teil der Veröffentlichung 3.35 des Projekts
Linux-man-pages. Eine Beschreibung des Projekts und Informationen, wie
Fehler gemeldet werden können, finden sich unter
http://man7.org/linux/man-pages/.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Patrick Rother <krd@gulu.net>
und
Chris Leick <c.leick@vollbio.de>
erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.
Index
- BEZEICHNUNG
-
- ÜBERSICHT
-
- BESCHREIBUNG
-
- RÜCKGABEWERT
-
- KONFORM ZU
-
- ANMERKUNGEN
-
- Linux-Anmerkungen
-
- SIEHE AUCH
-
- KOLOPHON
-
- ÜBERSETZUNG
-