| 
GET_END(3)                                                                                        GET_END(3)
NAME
       get_end, get_etext, get_edata - get values of UNIX link editor defined symbols
SYNOPSIS
       #include <mach-o/getsect.h>
       unsigned long get_end();
       unsigned long get_etext();
       unsigned long get_edata();
DESCRIPTION
       These  routines  provide a stopgap measure to programs that use the UNIX link-editor defined symbols.
       Use of these routines is very strongly discouraged.  The problem is that any program  that  is  using
       UNIX  link editor defined symbols (_end, _etext or _edata) is making assumptions that the program has
       the memory layout of a UNIX program.
       This is an incorrect assumption for a program built by the Mach-O link editor.  The reason that these
       routines  are  provided is that if very minimal assumptions about the layout are used and the default
       format and memory layout of the Mach-O link editor is used to build the program, some things may work
       by  using  the  values returned by these routines in place of the addresses of their UNIX link-editor
       defined symbols.  So use at your own risk, and only if you know what your doing.  Or better yet, con-vert convert
       vert the program to use the appropriate Mach or Mach-O functions.  If you are trying to allocate mem-ory memory
       ory use vm_allocate(2), if you are trying to find out about your address space use  vm_region(2)  and
       if you are trying to find out where your program is loaded use the dyld(3) functions.
       The  values  of the UNIX link-editor defined symbols _etext, _edata and _end are returned by the rou-tines routines
       tines get_etext, get_edata, and get_end respectively.  In a Mach-O file they have the following  val-ues: values:
       ues:  get_etext  returns the first address after the (__TEXT,__text) section, note this my or may not
       be the only  section  in  the  __TEXT  segment.   get_edata  returns  the  first  address  after  the
       (__DATA,__data) section, note this my or may not be the last non-zero fill section in the __DATA seg-ment. segment.
       ment.  get_end returns the first address after the last segment in  the  executable,  note  a  shared
       library may be loaded at this address.
SEE ALSO
       ld(1), dyld(3)
Apple Computer, Inc.                           April 10, 1998                                     GET_END(3)
 |