elf_rand(3E) UNIX System V(ELF Library) 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)
10/89 Page 1