elf_strptr man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



ELF_STRPTR(3E)							ELF_STRPTR(3E)

NAME
     elf_strptr - make a string pointer

SYNOPSIS
     cc [flag ...] file ...  -lelf [library ...]

     #include <libelf.h>
     char *elf_strptr(Elf *elf, size_t section, size_t offset);
     #define _LIBELF_XTND_64
     char *elf_strptr(Elf *elf, Elf64_Xword section, Elf64_Xword size_t offset);

DESCRIPTION
     This function converts a string section offset to a string pointer.  elf
     identifies the file in which the string section resides, and section
     gives the section table index for the strings.  elf_strptr normally
     returns a pointer to a string, but it returns a null pointer when elf is
     null, section is invalid or is not a section of type SHT_STRTAB, the
     section data cannot be obtained, offset is invalid, or an error occurs.

EXAMPLE
     A prototype for retrieving section names appears below.  The file header
     specifies the section name string table in the e_shstrndx member.	The
     following code loops through the sections, printing their names.

	  if ((ehdr = elf32_getehdr(elf)) == 0)
	  {
		  /* handle the error */
		  return;
	  }
	  ndx = ehdr->e_shstrndx;
	  scn = 0;
	  while ((scn = elf_nextscn(elf, scn)) != 0)
	  {
		  char	  *name = 0;
		  if ((shdr = elf32_getshdr(scn)) != 0)
		    name = elf_strptr(elf, ndx, (size_t)shdr->sh_name);
		  printf("'%s'\n", name? name: "(null)");
	  }

SEE ALSO
     elf(3E), elf_getdata(3E), elf_getshdr(3E), elf_xlate(3E).

NOTE
     A program may call elf_getdata to retrieve an entire string table
     section.  For some applications, that would be both more efficient and
     more convenient than using elf_strptr.

     The use of a size_t in a 32-bit compile with elf_strptr is unfortunate,
     since that makes it impossible to deal with certain object files.	If,
     when the 32-bit app is compiled, _LIBELF_XTND_64 is defined, then the
     function interface changes to have 64-bit fields.	If _LIBELF_XTND_64 is

									Page 1

ELF_STRPTR(3E)							ELF_STRPTR(3E)

     defined at compile-time, then instead of linking with -lelf, link with
     -lelf_xtnd.  There is a corresponding -ldwarf_xtnd.  It is essential that
     a 32-bit application compiled with _LIBELF_XTND_64 be *entirely* compiled
     with _LIBELF_XTND_64 defined.

     Applications which are built as 64-bit applications can ignore
     _LIBELF_XTND_64: it has no effect on them and 64-bit applications always
     link with -lelf never with -lelf_xtnd.

									Page 2

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net