ELF_RAND(3) | Library Functions Manual | ELF_RAND(3) |
elf_rand
—
#include <libelf.h>
off_t
elf_rand
(Elf
*archive, off_t
offset);
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.
elf_rand
() returns offset
if successful or zero in case of an error.
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 ... }
elf_rand
() may fail with the following errors:
ELF_E_ARGUMENT
]ELF_E_ARGUMENT
]ELF_E_ARCHIVE
]June 17, 2006 | NetBSD 9.2 |