Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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> >>.