Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       brk, sbrk - Modifier la taille du segment de donnees

SYNOPSIS

       #include <unistd.h>

       int brk(void *addr);

       void *sbrk(intptr_t increment);

   Exigences  de  macros  de  test de fonctionnalites pour la glibc (consultez
   feature_test_macros(7)) :

       brk(), sbrk() :
           Depuis la glibc 2.12 :
               _BSD_SOURCE || _SVID_SOURCE ||
                   (_XOPEN_SOURCE >= 500 ||
                       _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
                   !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
           Avant la glibc 2.12 : _BSD_SOURCE || _SVID_SOURCE ||
           _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

DESCRIPTION

       brk() et sbrk() modifient l'emplacement de l'interruption de programme,
       qui definit la fin du segment de donnees  du  processus  (c'est-a-dire,
       l'interruption  de programme est l'endroit juste a la fin du segment de
       donnees non initialise). Augmenter l'interruption de programme  a  pour
       effet  d'allouer  de la memoire au processus ; la diminuer a pour effet
       de desallouer de la memoire.

       brk() positionne la fin du segment de donnees (le premier  mot  memoire
       hors  de  la  zone  accessible)  a  l'adresse specifiee par addr. Cette
       valeur doit etre raisonnable, le systeme  doit  avoir  suffisamment  de
       memoire,  et  le  processus  ne doit pas depasser sa taille maximale de
       segment de donnees (consultez setrlimit(2)).

       sbrk() incremente l'espace de donnees du programme de increment octets.
       Appeler  sbrk() avec un increment nul permet d'obtenir l'emplacement de
       la limite actuelle.

VALEUR RENVOY'EE

       S'il reussit, brk() renvoie zero. En cas d'erreur,  il  renvoie  -1  et
       remplit  errno  avec  ENOMEM  (consultez la section Notes sur Linux ci-
       dessous).

       S'il reussit, sbrk() renvoie l'interruption  de  programme  precedente.
       (Si  la  limite  a  ete  augmentee, cette valeur est un pointeur sur le
       debut de la nouvelle zone de donnees). En cas d'echec, (void *) -1  est
       renvoye et errno contient le code d'erreur ENOMEM.

CONFORMIT'E

       BSD 4.3 ;  SUSv1,  considere comme historique dans SUSv2, supprime dans
       POSIX.1-2001.

NOTES

       Evitez d'utiliser brk() et sbrk() : la  fonction  d'allocation  memoire
       malloc(3)  est  une  methode  portable  et  confortable d'allouer de la
       memoire.

       Differents systemes  utilisent  differents  types  comme  parametres  a
       sbrk(). Les plus courants sont int, ssize_t, ptrdiff_t, intptr_t.

   Notes sur Linux
       La valeur de retour decrite ci-dessus pour brk() est le comportement de
       la fonction de glibc autour de l'appel systeme brk() de Linux. (Sur  la
       plupart des autres implementations, la valeur de retour de brk() est la
       meme ; cette valeur de  retour  est  egalement  specifiee  par  SUSv2.)
       Cependant, l'appel systeme Linux lui-meme renvoie la nouvelle limite du
       segment de donnees. En cas d'echec, l'appel systeme renvoie  la  limite
       actuelle.  La  fonction  enveloppe  de  la  glibc  fait  le  necessaire
       (c'est-a-dire verifie que la nouvelle limite  est  inferieure  a  addr)
       pour renvoyer les valeurs de retour 0 et -1 decrites plus haut.

       Sous  Linux,  sbrk()  est implemente comme une fonction de bibliotheque
       utilisant l'appel systeme brk(), et fait certains calculs internes pour
       pouvoir renvoyer l'ancienne valeur de la limite.

VOIR AUSSI

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

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).    Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.