- bullseye-backports 4.18.1-1~bpo11+1
- testing 4.18.1-1
- unstable 4.18.1-1
END(3) | Руководство программиста Linux | END(3) |
ИМЯ¶
etext, edata, end - конец программных сегментов
СИНТАКСИС¶
extern etext; extern edata; extern end;
ОПИСАНИЕ¶
Адреса этих символов соответствуют концам различных программных сегментов:
СООТВЕТСТВИЕ СТАНДАРТАМ¶
Хотя эти символы уже давно присутствуют в большинстве систем UNIX, они не стандартизованы. Используйте осторожно.
ЗАМЕЧАНИЯ¶
Программа должна явно объявлять эти символы; они не определены в заголовочных файлах.
В некоторых системах имена этих символов начинаются с подчёркивания: _etext, _edata и _end. Эти символы также определены в программах, скомпонованных на Linux.
В начале выполнения программы, повреждение программы будет где-нибудь рядом c &end (возможно, в начале следующей страницы). Однако, поломка изменяет память как при выделении с помощью brk(2) или malloc(3). Используйте sbrk(2) с аргументом 0 для поиска текущего значения поломки программы.
ПРИМЕРЫ¶
Нижеследующая программа выдает такие результаты:
$ ./a.out First address past:
program text (etext) 0x8048568
initialized data (edata) 0x804a01c
uninitialized data (end) 0x804a024
Исходный код программы¶
#include <stdio.h> #include <stdlib.h> extern char etext, edata, end; /* Символы должны иметь какой-то тип,
иначе предупреждения от «gcc -Wall» */ 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); }
СМ. ТАКЖЕ¶
objdump(1), readelf(1), sbrk(2), elf(5)
ЗАМЕЧАНИЯ¶
Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.
ПЕРЕВОД¶
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
9 июня 2020 г. | GNU |