.\" -*- coding: UTF-8 -*-
.\" Copyright (c) 1993 Michael Haardt
.\" (michael@moria.de),
.\" Fri Apr 2 11:32:09 MET DST 1993
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" .
.\" %%%LICENSE_END
.\"
.\" Modified Wed Jul 21 19:52:58 1993 by Rik Faith
.\" Modified Sun Aug 21 17:40:38 1994 by Rik Faith
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH BRK 2 "15. März 2016" Linux Linux\-Programmierhandbuch
.SH BEZEICHNUNG
brk, sbrk \- Datensegmentgröße ändern
.SH ÜBERSICHT
\fB#include \fP
.PP
\fBint brk(void *\fP\fIAdresse\fP\fB);\fP
.PP
\fBvoid *sbrk(intptr_t \fP\fIErhöhung\fP\fB);\fP
.PP
.in -4n
Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)):
.in
.PP
\fBbrk\fP(), \fBsbrk\fP():
.ad l
.RS 4
.PD 0
.TP 4
Seit Glibc 2.19:
.nf
.\" (_XOPEN_SOURCE\ >=\ 500 ||
.\" _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED) &&
_DEFAULT_SOURCE ||
(_XOPEN_SOURCE\ >=\ 500) &&
! (_POSIX_C_SOURCE\ >=\ 200112L)
.fi
.TP 4
Von Glibc 2.12 bis 2.19:
.nf
.\" (_XOPEN_SOURCE\ >=\ 500 ||
.\" _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED) &&
_BSD_SOURCE || _SVID_SOURCE ||
(_XOPEN_SOURCE\ >=\ 500) &&
! (_POSIX_C_SOURCE\ >=\ 200112L)
.fi
.TP 4
Vor Glibc 2.12:
.\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500
.PD
.RE
.ad b
.SH BESCHREIBUNG
\fBbrk\fP() und \fBsbrk\fP() ändern den Ort des \fIprogram break\fP, 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.
.PP
\fBbrk\fP setzt das Ende des Datensegments auf den Wert, der durch \fIAdresse\fP
angegeben ist. Wenn dieser Wert vernünftig ist, hat das System genug
Speicher und der Prozess überschreitet nicht seine maximale Datengröße
(siehe \fBsetrlimit\fP(2)).
.PP
\fBsbrk\fP vergrößert den Datenbereich des Programms um \fIErhöhung\fP Byte. Der
Aufruf von \fBsbrk\fP mit einer \fIErhöhung\fP von 0 kann zum Auffinden des
aktuellen Ortes des Programm\-Breaks benutzt werden.
.SH RÜCKGABEWERT
Bei Erfolg gibt \fBbrk\fP Null zurück. Im Fehlerfall wird \-1 zurückgegeben und
\fIerrno\fP auf \fBENOMEM\fP gesetzt.
.PP
Bei Erfolg gibt \fBsbrk\fP 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 \fI(void\ *)\ \-1\fP zurückgegeben
und \fIerrno\fP auf \fBENOMEM\fP gesetzt.
.SH "KONFORM ZU"
.\"
.\" .BR brk ()
.\" and
.\" .BR sbrk ()
.\" are not defined in the C Standard and are deliberately excluded from the
.\" POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
4.3BSD; SUSv1, in SUSv2 als ALTLAST gekennzeichnet, in POSIX.1\-2001 entfernt
.SH ANMERKUNGEN
Vermeiden Sie die Benutzung von \fBbrk\fP() und \fBsbrk\fP(): Das
Speicherreservierungspaket \fBmalloc\fP(3) ist portabel und stellt eine
komfortable Möglichkeit der Speicherreservierung bereit.
.PP
.\" One sees
.\" \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2),
.\" \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5),
.\" \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1),
.\" \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6,
.\" Tru64 5.1, glibc2.2).
Verschiedene Systeme benutzen verschieden Typen für das Argument von
\fBsbrk\fP(). Üblich sind \fIint\fP, \fIssize_t\fP, \fIptrdiff_t\fP und \fIintptr_t\fP.
.SS "Unterschiede C\-Bibliothek/Kernel"
Der oben beschriebene Rückgabewert für \fBbrk\fP() stellt das durch die
Glibc\-Wrapper\-Funktion bereitgestellte Verhalten für den Linux\-Systemaufruf
\fBbrk\fP() bereit. (In den meisten anderen Implementierungen hat \fBbrk\fP() 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 \fIAdresse\fP ist), um die Rückgabewerte 0 und \-1
wie oben beschrieben zurückzugeben.
.PP
Auf Linux ist \fBsbrk\fP() als Bibliotheksfunktion implementiert, die den
Systemaufruf \fBbrk\fP() benutzt und ein wenig interne Buchführung erledigt, so
dass sie den alten Break\-Wert zurückgeben kann.
.SH "SIEHE AUCH"
\fBexecve\fP(2), \fBgetrlimit\fP(2), \fBend\fP(3), \fBmalloc\fP(3)
.SH KOLOPHON
Diese Seite ist Teil der Veröffentlichung 5.04 des Projekts
Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie
Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter \%https://www.kernel.org/doc/man\-pages/.
.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Patrick Rother ,
Chris Leick
und
Mario Blättermann
erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
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
.MT debian-l10n-german@\:lists.\:debian.\:org
Mailingliste der Übersetzer
.ME .