ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

This manual page is associated with the Mac OS X developer tools. The software or headers described may not be present on your Mac OS X installation until you install the developer tools package. This package is available on your Mac OS X installation DVD, and the latest versions can be downloaded from developer.apple.com.

For more information about the manual page format, see the manual page for manpages(5).



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)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.