Man page - edata(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

end

NUME
SINOPSIS
DESCRIERE
STANDARDE
ISTORIC
NOTE
EXEMPLE
Sursa programului
CONSULTAȚI ȘI
TRADUCERE

NUME

etext, edata, end - sfârșitul segmentelor de program

SINOPSIS

extern etext ;
extern
edata ;
extern
end ;

DESCRIERE

Adresele acestor simboluri indică sfârșitul diferitelor segmente de program:

etext

Aceasta este prima adresă după sfârșitul segmentului de text (codul programului).

edata

Aceasta este prima adresă după sfârșitul segmentului de date inițializat.

end

Aceasta este prima adresă după sfârșitul segmentului de date neinițializate (cunoscut și sub numele de segment BSS).

STANDARDE

Niciunul.

ISTORIC

Deși aceste simboluri sunt furnizate de mult timp în majoritatea sistemelor UNIX, ele nu sunt standardizate; utilizați-le cu prudență.

NOTE

Programul trebuie să declare în mod explicit aceste simboluri; ele nu sunt definite în niciun fișier antet.

În unele sisteme, numele acestor simboluri sunt precedate de caractere de subliniere, astfel: _etext , _edata și _end . Aceste simboluri sunt, de asemenea, definite pentru programele compilate în Linux.

La începutul execuției programului, întreruperea programului se va afla undeva în apropierea lui &end (poate la începutul paginii următoare). Cu toate acestea, întreruperea se va schimba pe măsură ce memoria este alocată prin brk (2) sau malloc (3). Utilizați sbrk (2) cu un argument de zero pentru a afla valoarea curentă a întreruperii programului.

EXEMPLE

Atunci când este rulat, programul de mai jos produce un rezultat precum cel care urmează:

$ ./a.out
Prima adresă după:
textul programului (etext) 0x8048568
datele inițializate (edata) 0x804a01c
datele neinițializate (end) 0x804a024

Sursa programului

#include <stdio.h>
#include <stdlib.h>
extern char etext, edata, end; /* Simbolurile trebuie să fie de un anumit tip,
sau «gcc -Wall» se va plânge */
int
main(void)
{
printf("Prima adresă după:\n");
printf(" textul programului (etext) %10p\n", &etext);
printf(" datele inițializate (edata) %10p\n", &edata);
printf(" datele neinițializate (end) %10p\n", &end);
exit(EXIT_SUCCESS);
}

CONSULTAȚI ȘI

objdump (1), readelf (1), sbrk (2), elf (5)

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net .