Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_rawfile(3E) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)

elf_begin(3E)

elf_cntl(3E)

elf_getdata(3E)

elf_getehdr(3E)

elf_getident(3E)

elf_kind(3E)






       elf_rawfile(3E)                                      elf_rawfile(3E)


       NAME
             elf_rawfile - retrieve uninterpreted file contents

       SYNOPSIS
             cc [flag . . . ] file . . . -lelf [library] . . .
             #include <libelf.h>
             char *elf_rawfile(Elf *elf, size_t *ptr);

       DESCRIPTION
             elf_rawfile returns a pointer to an uninterpreted byte image
             of the file.  This function should be used only to retrieve a
             file being read.  For example, a program might use elf_rawfile
             to retrieve the bytes for an archive member.

             A program may not close or disable [see elf_cntl(3E)] the file
             descriptor associated with elf before the initial call to
             elf_rawfile, because elf_rawfile might have to read the data
             from the file if it does not already have the original 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 [see elf_getdata(3E)] is a related function,
             providing access to sections within a file.

             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 is
             present, elf is null, or an error occurs, the return value is
             a null pointer, with zero optionally stored through ptr.

       REFERENCES
             elf(3E), elf_begin(3E), elf_cntl(3E), elf_getdata(3E),
             elf_getehdr(3E), elf_getident(3E), elf_kind(3E)

       NOTICES
             A 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 elf_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 the raw file image


                           Copyright 1994 Novell, Inc.               Page 1













      elf_rawfile(3E)                                      elf_rawfile(3E)


            returned by elf_rawfile as a read-only buffer, unless it wants
            to alter its own view of data subsequently 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.








































                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026