Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


end(3) — Linux manual page

NAME |SYNOPSIS |DESCRIPTION |STANDARDS |HISTORY |NOTES |EXAMPLES |SEE ALSO |COLOPHON

end(3)                   Library Functions Manualend(3)

NAME        top

       etext, edata, end - end of program segments

SYNOPSIS        top

externetext;externedata;externend;

DESCRIPTION        top

       The addresses of these symbols indicate the end of various program       segments:etext  This is the first address past the end of the text segment              (the program code).edata  This is the first address past the end of the initialized              data segment.end    This is the first address past the end of the uninitialized              data segment (also known as the BSS segment).

STANDARDS        top

       None.

HISTORY        top

       Although these symbols have long been provided on most UNIX       systems, they are not standardized; use with caution.

NOTES        top

       The program must explicitly declare these symbols; they are not       defined in any header file.       On some systems the names of these symbols are preceded by       underscores, thus:_etext,_edata, and_end.  These symbols are       also defined for programs compiled on Linux.       At the start of program execution, the program break will be       somewhere near&end (perhaps at the start of the following page).       However, the break will change as memory is allocated viabrk(2)       ormalloc(3).  Usesbrk(2) with an argument of zero to find the       current value of the program break.

EXAMPLES        top

       When run, the program below produces output such as the following:           $./a.out           First address past:               program text (etext)       0x8048568               initialized data (edata)   0x804a01c               uninitialized data (end)   0x804a024Program source       #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);       }

SEE ALSO        top

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

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-05-17end(3)

Pages that refer to this page:brk(2)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp