HP-UX Reference (11i v2 07/12) - 3 Library Functions A-M (vol 6)

e
end(3C) end(3C)
NAME
end, etext, edata, __data_start, __text_start - last locations in program
SYNOPSIS
extern void *_end, *end, *_etext, *etext, *_edata, *edata, *__data_start,
*__text_start;
DESCRIPTION
These names refer neither to routines nor to locations with interesting contents. The address of the sym-
bols _etext and etext is the first address above the program text, the address of
_edata and
edata is the first address above the initialized data region, and the address of
_end and end is the first
address above the uninitialized data region.
The address of the symbols
__data_start is the beginning address of the program’s data area, and
__text_start is the beginning address of the programs text area.
The linker defines these symbols with the appropriate values if they are referenced by the program but not
defined. The linker issues an error if the user attempts to define
_etext, _edata, _end,
__data_start ,or__text_start .
When execution begins, the program break (the first location beyond the data) coincides with _end, but the
program break can be reset by the routines of brk(2), malloc(3C), standard input/output (stdio(3S)), the
profile (
-p) option of cc(1), and so on. Thus, the current value of the program break should be determined
by sbrk(0) (see brk(2)).
WARNINGS
In C, these names must look like addresses. Thus, use &end instead of end to access the current value
of end.
SEE ALSO
System Tools:
cc(1) invoke the HP-UX C compiler
ld(1) invoke the link editor
Miscellaneous:
brk(2) change data segment space allocation
crt0(3) execution startup routine
malloc(3C) main memory allocator
stdio(3S) standard buffered input/output stream file package
STANDARDS CONFORMANCE
end(): XPG2
edata(): XPG2
etext(): XPG2
HP-UX 11i Version 2: December 2007 Update 1 Hewlett-Packard Company 375