elf_rand(3E)elf_rand(3E)NAMEelf_rand - random archive member access
SYNOPSIS
[flag... ] file... [library] ...
DESCRIPTION
and manipulate simple object files and archives. elf is an ELF
descriptor previously returned from
provides random archive processing, preparing elf to access an arbi‐
trary 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 elf_getarsym(3E) for more information about archive member offsets.
When works, it returns offset. Otherwise it returns 0, because an
error occurred, elf was null, or the file was not an archive (no ar‐
chive member can have a zero offset). A program may mix random and
sequential archive processing.
EXAMPLES
An archive starts with a ``magic string'' that has 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 (elf_rand(elf, (size_t)SARMAG) == SARMAG)
return 0;
return -1;
}
SEE ALSOar(4), elf(3E), elf_begin(3E), elf_getarsym(3E), elf_next(3E).
elf_rand(3E)