end(3) Library Functions Manual end(3) NOM etext, edata, end - Fin des segments de programme SYNOPSIS extern etext; extern edata; extern end; DESCRIPTION Les adresses de ces symboles indiquent la fin de différents segments du programme : etext La première adresse après la fin du segment de texte (le code du programme). edata La première adresse après la fin du segment des données initia- lisées. end La première adresse après la fin du segment des données non ini- tialisées (également connu comme le segment BSS). STANDARDS Bien que ces symboles aient été fournis depuis longtemps par la plupart des systèmes UNIX, ils ne sont pas standard ; utilisez les avec précau- tion. NOTES Le programme doit déclarer explicitement ces symboles ; ils ne sont dé- finis dans aucun fichier d'en-têtes. Sur certains systèmes, les noms de ces symboles sont précédé d'un ti- ret-bas : _etext, _edata et _end. Ces symboles sont également définis pour les programmes compilés sous Linux. Au début de l'exécution du programme, l’interruption de programme se trouve quelque part près de &end (peut-être au début de la page qui suit). Cependant, l’interruption de programme se déplacera au fur et à mesure que de la mémoire est allouée avec brk(2) ou malloc(3). Utilisez sbrk(2) avec un paramètre nul pour trouver la valeur actuelle de l’in- terruption de programme. EXEMPLES Lors de son exécution, le programme affiche les résultats suivants : $ ./a.out First address past: program text (etext) 0x8048568 initialized data (edata) 0x804a01c uninitialized data (end) 0x804a024 Source du programme #include <stdio.h> #include <stdlib.h> extern char etext, edata, end; /* The symbols must have some type, or "gcc -Wall" complains */ int main(void) { printf("First address past:\n"); printf(" program text (etext) %10p\n", &etext); printf(" initialized data (edata) %10p\n", &edata); printf(" uninitialized data (end) %10p\n", &end); exit(EXIT_SUCCESS); } VOIR AUSSI objdump(1), readelf(1), sbrk(2), elf(5) TRADUCTION La traduction française de cette page de manuel a été créée par Chris- tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste- phan.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.cou- lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centra- liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <si- mon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@de- bian.org> et David Prévot <david@tilapin.org> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩. Pages du manuel de Linux 6.03 30 octobre 2022 end(3)
Generated by dwww version 1.15 on Sat Jun 29 01:54:35 CEST 2024.