END(3C) Standard C Library Functions END(3C)
end, _end, etext, _etext, edata, _edata - last locations in program
extern int _etext;
extern int _edata;
extern int _end;
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.
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.
brk(2), malloc(3C), stdio(3C)
March 31, 2006 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)
March 31, 2006 END(3C)