Linux |
CentOS 4.8 |
|
sbrk(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 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). |
execve(2), getrlimit(2), malloc(3). |
Christophe Blaess, 1997. |
sbrk(2) |