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

NUME

       brk, sbrk - modifică dimensiunea segmentului de date

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <unistd.h>

       int brk(void *addr);
       void *sbrk(intptr_t increment);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       brk(), sbrk():
           Începând cu glibc 2.19:
               _DEFAULT_SOURCE
                   || ((_XOPEN_SOURCE >= 500) &&
                       ! (_POSIX_C_SOURCE >= 200112L))
           De la glibc 2.12 la glibc 2.19:
               _BSD_SOURCE || _SVID_SOURCE
                   || ((_XOPEN_SOURCE >= 500) &&
                       ! (_POSIX_C_SOURCE >= 200112L))
           Înainte de glibc 2.12:
               _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500

DESCRIERE

       brk()  și  sbrk()  modifică  locația  lui  program break, care definește sfârșitul segmentului de date al
       procesului (de exemplu,  pauza  de  program  este  prima  locație  după  sfârșitul  segmentului  de  date
       neinițializat).  Creșterea  întreruperii  de  program  are  ca  efect  alocarea de memorie pentru proces;
       scăderea întreruperii are ca efect eliberarea de memorie.

       brk() stabilește sfârșitul segmentului de date la valoarea  specificată  de  addr,  atunci  când  această
       valoare  este rezonabilă, sistemul are suficientă memorie, iar procesul nu depășește dimensiunea maximă a
       datelor (a se vedea setrlimit(2)).

       sbrk() mărește spațiul de date al programului cu increment octeți.  Apelarea sbrk() cu un increment de  0
       poate fi utilizată pentru a găsi locația curentă a întreruperii programului.

VALOAREA RETURNATĂ

       În  caz de succes, brk() returnează zero. În caz de eroare, se returnează -1, iar errno este stabilită la
       ENOMEM.

       În caz de succes, sbrk() returnează întreruperea anterioară a programului  (dacă  pauza  a  fost  mărită,
       atunci  această  valoare  este  un  indicator  la  începutul  memoriei nou alocate). În caz de eroare, se
       returnează (void *) -1, iar errno este stabilită la ENOMEM.

STANDARDE

       Niciunul.

ISTORIC

       4.3BSD; SUSv1, marcată ca „LEGACY” în SUSv2, eliminată în POSIX.1-2001.

NOTE

       Evitați utilizarea brk() și sbrk(): pachetul de alocare a  memoriei  malloc(3)  este  modul  portabil  și
       confortabil de alocare a memoriei.

       Diferite  sisteme  utilizează  diferite  tipuri  pentru argumentul lui sbrk().  Cele mai comune sunt int,
       ssize_t, ptrdiff_t, intr_t.

   Diferențe între biblioteca C și nucleu
       Valoarea de retur descrisă mai sus pentru brk() este comportamentul oferit de funcția de învăluire  glibc
       pentru apelul de sistem Linux brk(); (în majoritatea celorlalte implementări, valoarea de returnare de la
       brk()  este  aceeași;  această  valoare de returnare a fost, de asemenea, specificată în SUSv2). Cu toate
       acestea, apelul de sistem Linux efectiv returnează noua întrerupere a programului în caz  de  succes.  În
       caz  de eșec, apelul de sistem returnează întreruperea curentă. Funcția de învăluire glibc face o anumită
       muncă (de exemplu, verifică dacă noua întrerupere este mai mică decât addr) pentru a furniza valorile  de
       returnare 0 și -1 descrise mai sus.

       În  Linux,  sbrk() este implementată ca o funcție de bibliotecă care utilizează apelul de sistem brk() și
       face o anumită contabilitate internă pentru a putea returna vechea valoare de întrerupere.

CONSULTAȚI ȘI

       execve(2), getrlimit(2), end(3), malloc(3)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                             brk(2)