svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
elf_getident(3elf)
elf_getident(3ELF) ELF Library Functions elf_getident(3ELF)
NAME
elf_getident, elf_getphdrnum, elf_getshdrnum, elf_getshdrstrndx,
elf_getphnum, elf_getshnum, elf_getshstrndx - retrieve ELF header data
SYNOPSIS
cc [ flag ... ] file ... -lelf [ library ... ]
#include <libelf.h>
char *elf_getident(Elf *elf, size_t *dst);
int elf_getphdrnum(Elf *elf, size_t *dst);
int elf_getshdrnum(Elf *elf, size_t *dst);
int elf_getshdrstrndx(Elf *elf, size_t *dst);
Obsolete Interfaces
int elf_getphnum(Elf *elf, size_t *dst);
int elf_getshnum(Elf *elf, size_t *dst);
int elf_getshstrndx(Elf *elf, size_t *dst);
DESCRIPTION
As elf(3ELF) explains, ELF provides a framework for various classes of
files, where basic objects might have 32 or 64 bits. To accommodate
these differences, without forcing the larger sizes on smaller
machines, the initial bytes in an ELF file hold identification informa‐
tion common to all file classes. The e_ident of every ELF header has
EI_NIDENT bytes with interpretations described in the following table.
tab(); lw(1.83i) lw(1.83i) lw(1.83i) e_ident IndexValuePurpose
EI_MAG0ELFMAG0File identification EI_MAG1ELFMAG1 EI_MAG2ELFMAG2
EI_MAG3ELFMAG3
EI_CLASSELFCLASSNONEFile class ELFCLASS32 ELFCLASS64
EI_DATAELFDATANONEData encoding ELFDATA2LSB ELFDATA2MSB
EI_VERSIONEV_CURRENTFile version
7-150Unused, set to zero
Other kinds of files might have identification data, though they would
not conform to e_ident. See elf_kind(3ELF) for information on other
kinds of files.
The elf_getident() function returns a pointer to the initial bytes of
the file. If the library recognizes the file, a conversion from the
file image to the memory image can occur. The identification bytes are
guaranteed to be unmodified, though the size of the unmodified area
depends on the file type. If the dst argument is non-null, the library
stores the number of identification bytes in the location to which dst
points. If no data are present, elf is NULL, or an error occurs, the
return value is a null pointer, with 0 stored through dst, if dst is
non-null.
The elf_getphdrnum() function obtains the number of program headers
recorded in the ELF file. The number of sections in a file is typically
recorded in the e_phnum field of the ELF header. A file that requires
the ELF extended program header records the value PN_XNUM in the
e_phnum field and records the number of sections in the sh_info field
of section header 0. See USAGE. The dst argument points to the location
where the number of sections is stored. If elf is NULL or an error
occurs, elf_getphdrnum() returns −1.
The elf_getshdrnum() function obtains the number of sections recorded
in the ELF file. The number of sections in a file is typically recorded
in the e_shnum field of the ELF header. A file that requires ELF
extended section records the value 0 in the e_shnum field and records
the number of sections in the sh_size field of section header 0. See
USAGE. The dst argument points to the location where the number of sec‐
tions is stored. If a call to elf_newscn(3ELF) that uses the same elf
descriptor is performed, the value obtained by elf_getshnum() is valid
only after a successful call to elf_update(3ELF). If elf is NULL or an
error occurs, elf_getshdrnum() returns −1.
The elf_getshdrstrndx() function obtains the section index of the
string table associated with the section headers in the ELF file. The
section header string table index is typically recorded in the
e_shstrndx field of the ELF header. A file that requires ELF extended
section records the value SHN_XINDEX in the e_shstrndx field and
records the string table index in the sh_link field of section header
0. See USAGE. The dst argument points to the location where the section
header string table index is stored. If elf is NULL or an error occurs,
elf_getshdrstrndx() returns −1.
The elf_getphnum(), elf_getshnum(), and elf_getshstrndx() functions
behave in a manner similar to elf_getphdrnum(), elf_getshdrnum(), and
elf_getshdrstrndx(), respectively, except that they return 0 if elf is
NULL or an error occurs. Because these return values differ from those
used by some other systems, they are therefore non-portable and their
use is discouraged. The elf_getphdrnum(), elf_getshdrnum(), and
elf_getshdrstrndx() functions should be used instead.
USAGE
ELF extended sections allow an ELF file to contain more than 0xff00
(SHN_LORESERVE) section. ELF extended program headers allow an ELF file
to contain 0xffff (PN_XNUM) or more program headers. See the Oracle
Solaris 11.4 Linkers and Libraries Guide for more information.
RETURN VALUES
Upon successful completion, the elf_getident() function returns a
pointer to the initial bytes of the file. Otherwise, it return 0.
Upon successful completion, the elf_getphdrnum(), elf_getshdrnum(), and
elf_getshdrstrndx() functions return 0. Otherwise, they return -1.
Upon successful completion, the elf_getphnum(), elf_getshnum(), and
elf_getshstrndx() functions return 1. Otherwise, they return 0.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilitySee below. _ MT-LevelMT-Safe
The elf_getident(), elf_getphdrnum(), elf_getshdrnum(), and elf_get‐
shdrstrndx() functions are Committed. The elf_getphnum(), elf_get‐
shnum(), and elf_getshstrndx() functions are Committed (Obsolete).
SEE ALSO
elf_kind(3ELF), elf(3ELF), elf32_getehdr(3ELF), elf_begin(3ELF),
elf_newscn(3ELF), elf_rawfile(3ELF), elf_update(3ELF), libelf(3LIB),
attributes(7)
Oracle Solaris 11.4 Linkers and Libraries Guide
Oracle Solaris 11.4 10 December 2015 elf_getident(3ELF)