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

NOM

       brk, sbrk - Modifier la taille du segment de données

SYNOPSIS

       #include <unistd.h>

       int brk(void *addr);

       void *sbrk(intptr_t increment);

   Exigences  de  macros  de  test de fonctionnalités 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 définit la fin du segment de données  du  processus  (c'est-à-dire,
       l'interruption  de programme est l'endroit juste à la fin du segment de
       données non initialisé). Augmenter l'interruption de programme  a  pour
       effet  d'allouer  de la mémoire au processus ; la diminuer à pour effet
       de désallouer de la mémoire.

       brk() positionne la fin du segment de données (le premier  mot  mémoire
       hors  de  la  zone  accessible)  à  l'adresse spécifiée par addr. Cette
       valeur doit être raisonnable, le système  doit  avoir  suffisamment  de
       mémoire,  et  le  processus  ne doit pas dépasser sa taille maximale de
       segment de données (consultez setrlimit(2)).

       sbrk() incrémente l'espace de données du programme de increment octets.
       Appeler  sbrk() avec un increment nul permet d'obtenir l'emplacement de
       la limite actuelle.

VALEUR RENVOYÉE

       S'il réussit, brk() renvoie zéro. En cas d'erreur,  il  renvoie  -1  et
       remplit  errno  avec  ENOMEM  (consultez la section Notes sur Linux ci‐
       dessous).

       S'il réussit, sbrk() renvoie l'interruption  de  programme  précédente.
       (Si  la  limite  a  été  augmentée, cette valeur est un pointeur sur le
       début de la nouvelle zone de données). En cas d'échec, (void *) -1  est
       renvoyé et errno contient le code d'erreur ENOMEM.

CONFORMITÉ

       BSD 4.3 ;  SUSv1,  considéré comme historique dans SUSv2, supprimé dans
       POSIX.1-2001.

NOTES

       Évitez d'utiliser brk() et sbrk() : la  fonction  d'allocation  mémoire
       malloc(3)  est  une  méthode  portable  et  confortable d'allouer de la
       mémoire.

       Différents systèmes  utilisent  différents  types  comme  paramètres  à
       sbrk(). Les plus courants sont int, ssize_t, ptrdiff_t, intptr_t.

   Notes sur Linux
       La valeur de retour décrite ci‐dessus pour brk() est le comportement de
       la fonction de glibc autour de l'appel système brk() de Linux. (Sur  la
       plupart des autres implémentations, la valeur de retour de brk() est la
       même ; cette valeur de  retour  est  également  spécifiée  par  SUSv2.)
       Cependant, l'appel système Linux lui‐même renvoie la nouvelle limite du
       segment de données. En cas d'échec, l'appel système renvoie  la  limite
       actuelle.  La  fonction  enveloppe  de  la  glibc  fait  le  nécessaire
       (c'est-à-dire vérifie que la nouvelle limite  est  inférieure  à  addr)
       pour renvoyer les valeurs de retour 0 et -1 décrites plus haut.

       Sous  Linux,  sbrk()  est implémenté comme une fonction de bibliothèque
       utilisant l'appel système 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       être       trouvées      à      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   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'équipe francophone de traduction de Debian (2006-2009).

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

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».