elf_rand(3E) DG/UX R4.11MU05 elf_rand(3E)
NAME
elfrand - random archive member access
SYNOPSIS
cc [flag ...] file ... -lelf [library ...]
#include <libelf.h>
sizet elfrand(Elf *elf, sizet offset);
DESCRIPTION
elfrand, elfnext, and elfbegin manipulate simple object files and
archives. elf is an ELF descriptor previously returned from
elfbegin.
elfrand provides random archive processing, preparing elf to access
an arbitrary archive member. elf must be a descriptor for the
archive itself, not a member within the archive. offset gives the
byte offset from the beginning of the archive to the archive header
of the desired member. See elfgetarsym(3E) for more information
about archive member offsets. When elfrand works, it returns
offset. Otherwise it returns 0, because an error occurred, elf was
null, or the file was not an archive (no archive member can have a
zero offset). A program may mix random and sequential archive
processing.
EXAMPLE
An archive starts with a ``magic string'' that has SARMAG bytes; the
initial archive member follows immediately. An application could
thus provide the following function to rewind an archive (the
function returns -1 for errors and 0 otherwise).
#include <ar.h>
#include <libelf.h>
int
rewindelf(Elf *elf)
{
if (elfrand(elf, (sizet)SARMAG) == SARMAG)
return 0;
return -1;
}
SEE ALSO
elf(3E), elfbegin(3E), elfgetarsym(3E), elfnext(3E), ar(4).
Licensed material--property of copyright holder(s)