end, etext, edata - last locations in program
extern int etext;
extern int edata;
extern int end, _end;
These names refer neither to routines nor to locations with interesting
contents. The address of etext is the first address above the program
text, edata above the initialized data region, and end above the
uninitialized data region. _end is the same as end, but in the
implementers name space, i.e. for use in libraries.
When execution begins, the program break coincides with end, but it is
reset by the routines brk(2), malloc(3), standard input/output
(stdio(3)), etc. The current value of the program break is reliably
returned by `sbrk(0)', see brk(2).