brk   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 26 juillet 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
brk, sbrk - Modifier la taille du segment de données  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <unistd.h>

int brk(void *fin_segment_donnée);
void *sbrk(intptr_t incrément);

Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :

brk(), sbrk() : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 fin_segment_donnée. 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 (voir setrlimit(2)).

sbrk() incrémente l'espace de données du programme de incrément octets. sbrk() n'est pas un appel système, juste une fonction de la bibliothèque C. Appeler sbrk() avec un incrément nul permet d'obtenir l'emplacement de la limite actuelle.  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
brk() renvoie 0 s'il réussit. En cas d'échec -1 est renvoyé, et errno contient le code d'erreur ENOMEM. (Voir Notes Linux plus loin.)

S'il réussit, sbrk() retourne un pointeur sur le début de la nouvelle zone de données. En cas d'échec -1 est renvoyé, et errno contient le code d'erreur ENOMEM.  




CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
BSD 4.3 ; SUSv1, considéré comme historique dans SUSv2, supprimé dans POSIX.1-2001.

brk() et sbrk() ne sont pas définis dans le C Standard, et sont volontairement exclus des standards POSIX.1 (paragraphes B.1.1.1.3 et B.8.3.3).  




NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Différents systèmes utilisent différents types comme paramètres à sbrk(). Les plus courants int, ssize_t, ptrdiff_t, intptr_t.  



Notes Linux   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
La valeur de retour décrite plus haut pour The return value described above for brk() est le comportement de la fonction enveloppe de la glibc pour l'appel système brk() sous Linux. (Sur la plupart des autres implémentations, la valeur de retour de brk() est la même.) Toutefois, l'actuel appel système Linux renvoie la nouvelle limite du segment de données s'il réussit. S'il échoue, l'appel renvoie l'actuelle limite du segment de données. (Ainsi, par exemple, l'appel brk(0) peur être utilisé pour obtenir l'actuelle limite du segment de données.) La fonction enveloppe de la glibc fait en sorte de renvoyer les valeurs de retour 0 et -1 décrites plus haut.

Sous Linux, sbrk() est implémenté comme une fonction de bibliothèque qui utilise l'appel système brk(), et effectue certains calculs internes afin de renvoyer l'ancienne valeur de la limite.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
execve(2), getrlimit(2), malloc(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 9 octobre 1996 et révisée le 22 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 brk ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
CONFORMITÉ
NOTES
Notes Linux
VOIR AUSSI
TRADUCTION

Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:49:24, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional