1. NOM▲
etext, edata, end - Fin des segments de programme
2. SYNOPSIS ▲
extern
etext;
extern
edata;
extern
end;
3. 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 initialisées. - end
La première adresse après la fin du segment des données non initialisées (également connu comme le segment BSS).
4. CONFORMITÉ ▲
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écaution.
5. 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 tiret-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'interruption de programme.
6. EXEMPLE ▲
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
6.1. 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
(
int
argc, char
*
argv[])
{
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);
}
7. VOIR AUSSI ▲
8. COLOPHON ▲
Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.
9. TRADUCTION ▲
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Alain Portal <http://manpagesfr.free.fr/> (2008).
Veuillez signaler toute erreur de traduction en écrivant à <>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».