end(3) — Subroutines
Digital
NAME
end, etext, edata, eprol, _ftext, _fdata, _fbss, _procedure_table, _procedure_table_size, _procedure_string_table − locations in program, runtime procedure table
SYNOPSIS
#include <syms.h>
extern _END;
extern _ETEXT;
extern _EDATA;
extern eprol;
extern _FTEXT;
extern _FDATA;
extern _FBSS;
extern _PROCEDURE_TABLE;
extern _PROCEDURE_TABLE_SIZE;
extern _PROCEDURE_STRING_TABLE;
DESCRIPTION
These names refer neither to routines nor to locations with interesting contents except for _PROCEDURE_TABLE and _PROCEDURE_STRING_TABLE. Except for eprol these are all names of loader defined symbols. The address of _ETEXT is the first address above the program text, _EDATA is above the initialized data region, _END is above the uninitialized data region, and eprol is the first instruction of the user’s program that follows the runtime startup routine.
When execution begins, the program break coincides with _END, but it is reset by the routines brk(2), malloc(3), standard input/output (stdio(3S)), the profile (−p) option of cc(1), etc. The current value of the program break is reliably returned by ‘sbrk(0)’, see brk(2).
The loader defined symbols _PROCEDURE_TABLE, _PROCEDURE_TABLE_SIZE and _PROCEDURE_STRING_TABLE refer to the data structures of the runtime procedure table. Since these are loader defined symbols the data structures are build by ld(1) only if they are referenced. See the include file <sym.h> for the definition of the runtime procedure table and see the include file <exception.h> for its uses.