elf_next —
provide sequential access to the next archive
member
ELF Access Library (libelf, -lelf)
#include
<libelf.h>
Elf_Cmd
elf_next(
Elf
*elf);
The
elf_next() function causes the ELF archive
descriptor corresponding to argument
elf to
be adjusted to provide access to the next member in the archive on a
subsequent call to
elf_begin().
The return value of
elf_next() is suitable for use
in a loop invoking
elf_begin().
If successful, function
elf_next() returns the
value
ELF_C_READ
. Otherwise, if argument
elf was not associated with an archive, or if
it was
NULL
, or if any other error
occurred, the value
ELF_C_NULL
is returned.
To process all the members of an archive use:
Elf_Cmd cmd;
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 ...
cmd = elf_next(e);
elf_end(e);
}
elf_end(archive);
Function
elf_next() may fail with the following
error:
-
-
- [
ELF_E_ARGUMENT
]
- Argument elf was not
associated with a containing
ar(1) archive.
-
-
- [
ELF_E_ARGUMENT
]
- An error was encountered while parsing the archive
containing argument elf.
elf(3),
elf_begin(3),
elf_end(3),
elf_rand(3)