Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ELF_RAND(3)	       FreeBSD Library Functions Manual		   ELF_RAND(3)

NAME
     elf_rand -- provide sequential access to the next archive member

LIBRARY
     ELF Parsing 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) func-
     tion.

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:

     [ELF_E_ARGUMENT]  Argument	archive	was null.

     [ELF_E_ARGUMENT]  Argument	archive	was not	a descriptor for an ar(1) ar-
		       chive.

     [ELF_E_ARCHIVE]   Argument	offset did not correspond to the start of an
		       archive member header.

SEE ALSO
     ar(1), elf(3), elf_begin(3), elf_end(3), elf_getarsym(3), elf_next(3),
     gelf(3)

FreeBSD	13.0			 June 17, 2006			  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=elf_rand&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help