ELF Library Functions elf_rawfile(3ELF)
NAME
elf_rawfile - retrieve uninterpreted file contents
SYNOPSIS
cc [ flag... ] file ... -lelf [ library ... ]
#include
char *elf_rawfile(Elf *elf, size_t *ptr);
DESCRIPTION
The elf_rawfile() function returns a pointer to an uninter-
preted byte image of the file. This function should be used only to retrieve a file being read. For example, a programmight use elf_rawfile() to retrieve the bytes for an archive
member.A program may not close or disable (see elf_cntl(3ELF)) the
file descriptor associated with elf before the initial callto elf_rawfile() , because elf_rawfile() might have to read
the data from the file if it does not already have the ori-
ginal bytes in memory. Generally, this function is more efficient for unknown file types than for object files. The library implicitly translates object files in memory, while it leaves unknown files unmodified. Thus, asking for the uninterpreted image of an object file may create a duplicate copy in memory.elf_rawdata() is a related function, providing access to
sections within a file. See elf_getdata(3ELF).
If ptr is non-null, the library also stores the file's size,
in bytes, in the location to which ptr points. If no data are present, elf is null, or an error occurs, the return value is a null pointer, with 0 stored through ptr, if ptris non-null.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 11 Jul 2001 1
ELF Library Functions elf_rawfile(3ELF)
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
SEE ALSO
elf(3ELF), elf32_getehdr(3ELF), elf_begin(3ELF),
elf_cntl(3ELF), elf_getdata(3ELF), elf_getident(3ELF),
elf_kind(3ELF), libelf(3LIB), attributes(5)
NOTESA program that uses elf_rawfile() and that also interprets
the same file as an object file potentially has two copies of the bytes in memory. If such a program requests the raw image first, before it asks for translated information(through such functions as elf32_getehdr(), elf_getdata(),
and so on), the library ``freezes'' its original memory copy for the raw image. It then uses this frozen copy as the source for creating translated objects, without reading the file again. Consequently, the application should view theraw file image returned by elf_rawfile() as a read-only
buffer, unless it wants to alter its own view of data subse-
quently translated. In any case, the application may alter the translated objects without changing bytes visible in the raw image.Multiple calls to elf_rawfile() with the same ELF descriptor
return the same value; the library does not create duplicate copies of the file.SunOS 5.11 Last change: 11 Jul 2001 2