Man page - brk(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

brk

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
STANDARDS
HISTORIQUE
NOTES
Différences entre bibliothÚque C et noyau
VOIR AUSSI
TRADUCTION

NOM

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

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <unistd.h>

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

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

brk (), sbrk () :
Depuis la 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))
Avant la glibc 2.12 :
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500

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 indiquĂ©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 .

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 .

STANDARDS

Aucun.

HISTORIQUE

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 .

Différences entre bibliothÚque C et noyau

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 indiquĂ©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)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .