Provided by: manpages-de-dev_0.10-1_all bug

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>.