Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

get_end(3) [osx man page]

GET_END(3)						     Library Functions Manual							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 pro- gram, some things may work by using the values returned by these routines in place of the addresses of their UNIX link-editor defined sym- bols. So use at your own risk, and only if you know what your doing. Or better yet, convert the program to use the appropriate Mach or Mach-O functions. If you are trying to allocate memory 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 routines get_etext, get_edata, and get_end respectively. In a Mach-O file they have the following values: 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 segment. 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)

Check Out this Related Man Page

GETSECTBYNAME(3)					     Library Functions Manual						  GETSECTBYNAME(3)

NAME
getsectbyname, getsectdata - get the section information for the named section SYNOPSIS
#include <mach-o/getsect.h> const struct section *getsectbynamefromheader( const struct mach_header *mhp, const char *segname, const char *sectname) const struct section *getsectbyname( const char *segname, const char *sectname) char *getsectdatafromheader( const struct mach_header *mhp, const char *segname, const char *sectname, unsigned long *size) char *getsectdata( const char *segname, const char *sectname, unsigned long *size) char *getsectdatafromFramework( const char *FrameworkName, const char *segname, const char *sectname, unsigned long *size) DESCRIPTION
Getsectbynamefromheader returns the section structure for the named section in the named segment if it exists in the specified Mach header otherwise it returns NULL. If the specified Mach header comes from a dynamic library as returned by _dyld_get_image_header(3) the addr field in the section structure will have to have _dyld_get_image_vmaddr_slide(3) added to it to make it a valid pointer. Getsectbyname is the same as getsectbynamefromheader with its first argument being the link editor defined symbol _mh_execute_header. Getsectdatafromheader returns the address to the data for the named section in the named segment if it exists in the specified Mach header. Also it returns the size of the section data indirectly through the pointer size. Otherwise it returns NULL for the pointer and zero for the size. If the specified Mach header comes from a dynamic library as returned by _dyld_get_image_header(3) the address to the data returned will have to have _dyld_get_image_vmaddr_slide(3) added to it to make it a valid pointer. Getsectdata is the same as getsectdatafromheader with its first argument being the link editor defined symbol _mh_execute_header. getsectdatafromFramework is used to get the named section data from the named Framework. For example, the framework name ``Appkit'' would be used for /System/Library/Frameworks/Appkit.framework/Versions/C/Appkit. If that Framework isn't being used by the program then it returns NULL for the pointer and zero for the size. SEE ALSO
dyld(3), getsegbyname(3) Apple Computer, Inc. April 10, 1998 GETSECTBYNAME(3)
Man Page