Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ elf_rand(3E) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ar(4)

elf(3E)

elf_begin(3E)

elf_getarsym(3E)

elf_next(3E)






       elf_rand(3E)                                            elf_rand(3E)


       NAME
             elf_rand - random archive member access

       SYNOPSIS
             cc [flag . . . ] file . . . -lelf [library] . . .
             #include <libelf.h>
             size_t elf_rand(Elf *elf, size_t offset);

       DESCRIPTION
             elf_rand, elf_next, and elf_begin manipulate simple object
             files and archives.  elf is an ELF descriptor previously
             returned from elf_begin.

             elf_rand provides random archive processing, preparing elf to
             access an arbitrary archive member.  elf must be a descriptor
             for the archive itself, not a member within the archive.
             offset gives the byte offset from the beginning of the archive
             to the archive header of the desired member.  See
             elf_getarsym(3E) for more information about archive member
             offsets.  When elf_rand works, it returns offset.  Otherwise
             it returns 0, because an error occurred, elf was null, or the
             file was not an archive (no archive member can have a zero
             offset).  A program may mix random and sequential archive
             processing.

       EXAMPLES
             An archive starts with a ``magic string'' that has SARMAG
             bytes; the initial archive member follows immediately.  An
             application could thus provide the following function to
             rewind an archive (the function returns -1 for errors and 0
             otherwise).

                  #include <ar.h>
                  #include <libelf.h>

                  int
                  rewindelf(Elf *elf)
                  {
                          if (elf_rand(elf, (size_t)SARMAG) == SARMAG)
                                  return 0;
                          return -1;
                  }

       REFERENCES
             ar(4), elf(3E), elf_begin(3E), elf_getarsym(3E), elf_next(3E)



                           Copyright 1994 Novell, Inc.               Page 1








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026