Linux |
CentOS 5.3 |
|
brk(2) |
brk, sbrk − Modifier la taille du segment de données. |
#include <unistd.h> int brk(void
*fin_segment_donnée); |
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. |
brk() renvoie 0 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. |
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). |
Différents systèmes utilisent différents types comme paramètres à sbrk(). Les plus courants int, ssize_t, ptrdiff_t, intptr_t. XPGv6 considère cette fonction comme obsolète. |
execve(2), getrlimit(2), malloc(3). |
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 14 août 2006. 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. |
brk(2) |