end(3) Library Functions Manual end(3) NUME etext, edata, end - sfaritul segmentelor de program REZUMAT extern etext; extern edata; extern end; DESCRIERE Adresele acestor simboluri indica sfaritul diferitelor segmente de program: etext Aceasta este prima adresa dupa sfaritul segmentului de text (codul programului). edata Aceasta este prima adresa dupa sfaritul segmentului de date iniializat. end Aceasta este prima adresa dupa sfaritul segmentului de date neiniializate (cunoscut i sub numele de segment BSS). STANDARDE Niciunul. ISTORIC Dei aceste simboluri sunt furnizate de mult timp in majoritatea sistemelor UNIX, ele nu sunt standardizate; utilizai-le cu prudena. NOTE Programul trebuie sa declare in mod explicit aceste simboluri; ele nu sunt definite in niciun fiier antet. In 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 in Linux. La inceputul execuiei programului, intreruperea programului se va afla undeva in apropierea lui &end (poate la inceputul paginii urmatoare). Cu toate acestea, intreruperea se va schimba pe masura ce memoria este alocata prin brk(2) sau malloc(3). Utilizai sbrk(2) cu un argument de zero pentru a afla valoarea curenta a intreruperii programului. EXEMPLE Atunci cand este rulat, programul de mai jos produce un rezultat precum cel care urmeaza: $ ./a.out Prima adresa dupa: textul programului (etext) 0x8048568 datele iniializate (edata) 0x804a01c datele neiniializate (end) 0x804a024 Sursa programului #include #include extern char etext, edata, end; /* Simbolurile trebuie sa fie de un anumit tip, sau <> se va plange */ int main(void) { printf("Prima adresa dupa:\n"); printf(" textul programului (etext) %10p\n", &etext); printf(" datele iniializate (edata) %10p\n", &edata); printf(" datele neiniializate (end) %10p\n", &end); exit(EXIT_SUCCESS); } CONSULTAI I objdump(1), readelf(1), sbrk(2), elf(5) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 end(3)