Go to main content

man pages section 3: Basic Library Functions

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

end(3C)

Name

end, _end, etext, _etext, edata, _edata - last locations in program

Synopsis

extern int _etext;
extern int _edata;
extern int _end;

Description

These names refer neither to routines nor to locations with interesting contents; only their addresses are meaningful.

_etext

The address of _etext is the first location after the last read-only loadable segment.

_edata

The address of _edata is the first location after the last read-write loadable segment.

_end

If the address of _edata is greater than the address of _etext, the address of _end is same as the address of _edata.

If the address of _etext is greater than the address of _edata, the address of _end is set to the page boundary after the address pointed to by _etext.

Usage

When execution begins, the program break (the first location beyond the data) coincides with _end, but the program break can be reset by the brk(2), malloc(3C), and the standard input/output library (see stdio(3C)), functions by the profile (–p) option of cc, and so on. Thus, the current value of the program break should be determined by sbrk ((char *)0).

References to end, etext, and edata, without a preceding underscore will be aliased to the associated symbol that begins with the underscore.

See Also

brk(2), malloc(3C), stdio(3C)