FreeBSD manual
download PDF document: elf_rand.3.pdf
ELF_RAND(3) FreeBSD Library Functions Manual ELF_RAND(3)
NAME
elf_rand - provide sequential access to the next archive member
LIBRARY
ELF Access Library (libelf, -lelf)
SYNOPSIS
#include <libelf.h>
off_t
elf_rand(Elf *archive, off_t offset);
DESCRIPTION
The elf_rand() function causes the ELF descriptor archive to be adjusted
so that the next call to elf_begin(3) will provide access to the archive
member at byte offset offset in the archive. Argument offset is the byte
offset from the start of the archive to the beginning of the archive
header for the desired member.
Archive member offsets may be retrieved using the elf_getarsym(3)
function.
RETURN VALUES
Function elf_rand() returns offset if successful or zero in case of an
error.
EXAMPLES
To process all the members of an archive use:
off_t off;
Elf *archive, *e;
...
cmd = ELF_C_READ;
archive = elf_begin(fd, cmd, NULL);
while ((e = elf_begin(fd, cmd, archive)) != (Elf *) 0)
{
... process `e' here ...
elf_end(e);
off = ...new value...;
if (elf_rand(archive, off) != off) {
... process error ...
}
}
elf_end(archive);
To rewind an archive, use:
Elf *archive;
...
if (elf_rand(archive, SARMAG) != SARMAG) {
... error ...
}
ERRORS
Function elf_rand() may fail with the following errors:
SEE ALSO
ar(1), elf(3), elf_begin(3), elf_end(3), elf_getarsym(3), elf_next(3),
gelf(3)
FreeBSD 14.0-RELEASE-p11 June 17, 2006 FreeBSD 14.0-RELEASE-p11