HP-UX Reference (11i v2 07/12) - 3 Library Functions A-M (vol 6)
e
elf_rand(3E) elf_rand(3E)
NAME
elf_rand - random archive member access
SYNOPSIS
cc [flag... ] file...
-lelf [library] ...
#include <libelf.h>
size_t elf_rand(Elf *elf, size_t offset);
DESCRIPTION
elf_rand, elf_next, and elf_begin manipulate simple object files and archives. elf is an ELF
descriptor previously returned from
elf_begin.
elf_rand 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 elf_getarsym(3E) for
more information about archive member offsets. When
elf_rand 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.
EXAMPLES
An archive starts with a ‘‘magic string’’ that has
SARMAG
bytes; the initial archive member follows immedi-
ately. 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 ALSO
ar(4), elf(3E), elf_begin(3E), elf_getarsym(3E), elf_next(3E).
HP-UX 11i Version 2: December 2007 Update − 1 − Hewlett-Packard Company 367