Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ldfcn(4) — DG/UX 4.30

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fseek(3S)

ldahread(3X)

ldclose(3X)

ldfhread(3X)

ldgetname(3X)

ldohseek(3X)

ldopen(3X)

ldshread(3X)

ldsseek(3X)

ldsyshread(3X)

ldtbindex(3X)

ldtbread(3X)

ldtbseek(3X)

intro(5)



     ldfcn(4)                   DG/UX 4.30                    ldfcn(4)



     NAME
          ldfcn - executable file access routines in DG/UX

     SYNOPSIS
          #include <stdio.h>
          #include <sys/types.h>
          #include <filehdr.h>
          #include <ldfcn.h>

     DESCRIPTION
          The executable file access routines are a collection of
          functions for reading an executable file that is in DG/UX
          executable file format.  Although the calling program must
          know the detailed structure of the parts of the executable
          file that it processes, the routines effectively insulate
          the calling program from knowledge of the overall structure
          of the executable file.

          The interface between the calling program and the executable
          file access routines is based on LDFILE defined as struct
          ldfile, declared in the header file ldfcn.h.  This structure
          provides uniform access to simple executable files and to
          executable files that are members of an archive file.

          The function ldopen(3X) allocates and initializes the LDFILE
          structure and returns a pointer to the structure to the
          calling program.  The fields of the LDFILE structure may be
          accessed individually through macros defined in ldfcn.h and
          contain the following information:

          LDFILE         *ldptr;

          TYPE(ldptr)    The file magic number, used to distinguish
                         between archive members and simple executable
                         files.

          IOPTR(ldptr)   The file pointer returned by fopen(3S) and
                         used by the standard input/output functions.

          OFFSET(ldptr)  The file address of the beginning of the
                         executable file; the offset is non-zero if
                         the executable file is a member of an archive
                         file.

          HEADER(ldptr)  The file header structure of the executable
                         file.

          The executable file access functions may be divided into
          four categories:

          (1)  Functions that open or close an executable file




     Licensed material--property of copyright holder(s)         Page 1





     ldfcn(4)                   DG/UX 4.30                    ldfcn(4)



          ldopen(3X) and ldaopen(3X) open an executable file
          ldclose(3X) and ldaclose(3X) close an executable file

          (2)  Functions that read header or symbol table information.

          ldahread(3X) read the archive header of a member of an
          archive file ldfhread(3X) read the file header of an
          executable file ldshread(3X) read a section header of an
          executable file ldsyshread(3X) read the system header of an
          executable file ldtbread(3X) read a symbol table entry of an
          executable file ldgetname(3X) retrieve a symbol name from a
          symbol table entry.

          (3)  Functions that position an executable file at (seek to)
          the start of a particular section.

          ldohseek(3X) seek to the system header of an executable file
          ldsseek(3X) seek to a section of an executable file
          ldtbseek(3X) seek to the symbol table of an executable file

          (4) The function ldtbindex(3X), which returns the index of a
          particular executable file symbol table entry.

          These functions are described in detail on their respective
          manual pages.

          All the functions except ldaopen(3X), ldgetname(3X),
          ldopen(3X), and ldtbindex(3X) return either SUCCESS or
          FAILURE, both constants defined in ldfcn.h.  Ldaopen(3X) and
          ldopen(3X) both return pointers to an LDFILE structure.

          Additional access to an executable file is provided through
          a set of macros defined in ldfcn.h.  These macros parallel
          the standard input/output file reading and manipulating
          functions, translating a reference of the LDFILE structure
          into a reference to its file descriptor field.

          The following macros are provided:

               GETC(ldptr)
               FGETC(ldptr)
               GETW(ldptr)
               UNGETC(c, ldptr)
               FGETS(s, n, ldptr)
               FREAD(ptr, sizeof (*ptr), nitems, ldptr)
               FSEEK(ldptr, offset, ptrname)
               FTELL(ldptr)
               REWIND(ldptr)
               FEOF(ldptr)
               FERROR(ldptr)
               FILENO(ldptr)
               SETBUF(ldptr, buf)



     Licensed material--property of copyright holder(s)         Page 2





     ldfcn(4)                   DG/UX 4.30                    ldfcn(4)



          See the manual entries for the corresponding standard
          input/output library functions for details on these macros.

          The program must be loaded with the executable file access
          routine library libld.a.

     WARNING
          The macro FSEEK defined in the header file ldfcn.h
          translates into a call to the standard input/output function
          fseek(3S).  FSEEK should not be used to seek from the end of
          an archive file because the end of an archive file may not
          be the same as the end of one of its executable file
          members!

     SEE ALSO
          fseek(3S), ldahread(3X), ldclose(3X), ldfhread(3X),
          ldgetname(3X), ldohseek(3X), ldopen(3X), ldshread(3X),
          ldsseek(3X), ldsyshread(3X), ldtbindex(3X), ldtbread(3X),
          ldtbseek(3X), intro(5).

     CAVEATS
          The executable file format is used only for executable files
          (load modules), not for object files.
































     Licensed material--property of copyright holder(s)         Page 3



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