.\" -*- coding: UTF-8 -*-
.\" Copyright (c) 1993 Michael Haardt, (michael@moria.de)
.\" and Copyright 2006, 2008, Michael Kerrisk <tmk.manpages@gmail.com>
.\" Fri Apr  2 11:32:09 MET DST 1993
.\"
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\"
.\" Modified Wed Jul 21 19:52:58 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified Sun Aug 21 17:40:38 1994 by Rik Faith <faith@cs.unc.edu>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH brk 2 "2 maja 2024 r." "Linux man\-pages 6.9.1" 
.SH NAZWA
brk, sbrk \- zmienia wielkość segmentu danych
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <unistd.h>\fP
.P
\fBint brk(void *\fP\fIaddr\fP\fB);\fP
\fBvoid *sbrk(intptr_t \fP\fIincrement\fP\fB);\fP
.fi
.P
.RS -4
Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)):
.RE
.P
\fBbrk\fP(), \fBsbrk\fP():
.nf
.\"    (_XOPEN_SOURCE >= 500 ||
.\"        _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
.\"    (_XOPEN_SOURCE >= 500 ||
.\"        _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
.\"    || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
    Od glibc 2.19:
        _DEFAULT_SOURCE
            || ((_XOPEN_SOURCE >= 500) &&
                ! (_POSIX_C_SOURCE >= 200112L))
    glibc 2.12 do glibc 2.19:
        _BSD_SOURCE || _SVID_SOURCE
            || ((_XOPEN_SOURCE >= 500) &&
                ! (_POSIX_C_SOURCE >= 200112L))
    Przed glibc 2.12:
        _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500
.fi
.SH OPIS
\fBbrk\fP() i \fBsbrk\fP() zmieniają położenie \fIpunktu zakończenia programu\fP,
definiującego koniec segmentu danych procesu (tzn. punkt zakończenie
programu jest pierwszym położeniem po końcu niezainicjowanego segmentu
danych). Zwiększenie punktu zakończenia programu w efekcie zwiększa
przydzieloną procesowi pamięć; zmniejszenie \- cofa przydzielenie pamięci.
.P
\fBbrk\fP() ustawia koniec segmentu danych na wartość podaną jako argument
\fIaddr\fP, o ile wartość ta jest sensowna, system posiada dostateczną ilość
pamięci oraz nie zostanie przekroczona maksymalna wielkość segmentu danych
dla procesu (zobacz \fBsetrlimit\fP(2)).
.P
\fBsbrk\fP() zwiększa przestrzeń danych programu o wartość \fIincrement\fP
bajtów. Wywołanie \fBsbrk\fP() z \fIincrement\fP równym 0 może służyć do
znalezienia aktualnej lokalizacji punktu zakończenia programu.
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu \fBbrk\fP() zwraca zero. Po błędzie zwracane jest \-1,
a \fIerrno\fP ustawiane jest na \fBENOMEM\fP.
.P
Po pomyślnym zakończeniu, \fBsbrk\fP() zwraca poprzedni punkt zakończenia
programu (jeśli go zwiększono, to wartość ta wskazuje na początek nowo
przydzielonej pamięci). W przypadku błędu zwracane jest  \fI(void\ *)\ \-1\fP a
\fIerrno\fP nadawana jest wartość \fBENOMEM\fP.
.SH STANDARDY
Brak.
.SH HISTORIA
.\"
.\" .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, oznaczone jako LEGACY (przestarzałe) w SUSv2, usunięte w
POSIX.1\-2001.
.SH UWAGI
Nie zaleca się używania \fBbrk\fP() i \fBsbrk\fP(): przenośnym i wygodnym sposobem
przydzielania pamięci jest pakiet \fBmalloc\fP(3).
.P
.\" 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).
Różne systemy używają różnych typów argumentu \fBsbrk\fP(). Powszechne są:
\fIint\fP, \fIssize_t\fP, \fIptrdiff_t\fP, \fIintptr_t\fP.
.SS "Różnice biblioteki C/jądra"
Zwracana wartość opisana powyżej dla \fBbrk\fP() jest zachowaniem udostępnianym
przez funkcję opakowującą z glibc dla wywołania systemowego \fBbrk\fP() Linuksa
(w większości innych implementacji, zwracana wartość \fBbrk\fP() jest taka
sama; takąż określono również w SUSv2). Jednak rzeczywiste linuksowe
wywołanie systemowe zwraca przy pomyślnym zakończeniu nowy punkt zakończenia
programu. W przypadku błędu, wywołanie systemowe zwraca bieżący punkt
zakończenia. Funkcja opakowująca z glibc czyni pewne starania (tj. sprawdza,
czy nowy punkt zakończenia wynosi mniej niż \fIaddr\fP), aby udostępnić opisane
wyżej zwracane wartości 0 i \-1.
.P
W Linuksie, \fBsbrk\fP() zaimplementowano jako funkcję biblioteczną
korzystającą z wywołania systemowego \fBbrk\fP(), która dokonuje pewnego
wewnętrznego księgowania, dzięki czemu może zwrócić wartość starego punktu
zakończenia programu.
.SH "ZOBACZ TAKŻE"
\fBexecve\fP(2), \fBgetrlimit\fP(2), \fBend\fP(3), \fBmalloc\fP(3)
.PP
.SH TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika:
Przemek Borys <pborys@dione.ids.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
