Provided by: manpages-de-dev_4.27.0-1_all bug

BEZEICHNUNG

       brk, sbrk - Datensegmentgröße ändern

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <unistd.h>

       int brk(void *Adresse);
       void *sbrk(intptr_t Erhöhung);

   Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

       brk(), sbrk():
           Seit Glibc 2.19:
               _DEFAULT_SOURCE
                   || ((_XOPEN_SOURCE >= 500) &&
                       ! (_POSIX_C_SOURCE >= 200112L))
           Von Glibc 2.12 bis 2.19:
               _BSD_SOURCE || _SVID_SOURCE
                   || ((_XOPEN_SOURCE >= 500) &&
                       ! (_POSIX_C_SOURCE >= 200112L))
           Vor Glibc 2.12:
               _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500

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 Erhöhung Byte. Der Aufruf von sbrk mit einer Erhöhung
       von 0 kann zum Auffinden des aktuellen Ortes des Programm-Breaks benutzt werden.

RÜCKGABEWERT

       Bei Erfolg gibt brk Null zurück. Im Fehlerfall wird -1 zurückgegeben und errno auf ENOMEM gesetzt.

       Bei Erfolg gibt sbrk 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.

STANDARDS

       Keine.

GESCHICHTE

       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.

   Unterschiede C-Bibliothek/Kernel
       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)

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite  wurde  von  Patrick  Rother  <krd@gulu.net>,  Chris  Leick
       <c.leick@vollbio.de> und Mario Blättermann <mario.blaettermann@gmail.com> 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  die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                              2. Mai 2024                                            brk(2)