ELF_NEXT(3) | Library Functions Manual | ELF_NEXT(3)

# NAME

`elf_next` — provide sequential access to the next archive member

# SYNOPSIS

ELF Access Library (libelf, -lelf)
`#include <libelf.h>`

Elf_Cmd
`elf_next`(Elf *elf);

# DESCRIPTION

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`().

# RETURN VALUES

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.

# EXAMPLES

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);

# ERRORS

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.

# SEE ALSO

elf(3), elf_begin(3), elf_end(3), elf_rand(3)

February 27, 2019 | Debian