elf_next(3)

elf_next3

Provide sequential access to the next archive member

Usage

#include <libelf.h>

Elf_Cmd

elf_next(Elf *elf);

Library

library “libelf”

Overview

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.

Releases

44 releases since FreeBSD 7.0-RELEASE; the text changed 21 times.

  1. 7.0
  2. 7.1
  3. 7.2
  4. 7.3
  5. 7.4
  6. 8.0
  7. 8.1
  8. 8.2
  9. 8.3
  10. 8.4
  11. 9.0
  12. 9.1
  13. 9.2
  14. 9.3
  15. 10.0
  16. 10.1
  17. 10.2
  18. 10.3
  19. 10.4
  20. 11.0–12.0
  21. 12.1
  22. 12.2–16.0

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.