*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> ldopen (3)              
Title
Content
Arch
Section
 

ldopen(3)

Contents


NAME    [Toc]    [Back]

       ldopen, ldaopen - open a common object file for reading

SYNOPSIS    [Toc]    [Back]

       #include  <stdio.h> #include <filehdr.h> #include <syms.h>
       #include <ldfcn.h>

       LDFILE *ldopen(
               char *filename,
               LDFILE *ldptr ); LDFILE *ldaopen(
               char *filename,
               LDFILE *oldptr ); ldreadst(
               LDFILE *ldptr,
               int flags );

LIBRARY    [Toc]    [Back]

       libmld.a

DESCRIPTION    [Toc]    [Back]

       The ldopen() and ldclose() routines provide uniform access
       to  simple  object files and to object files that are members
 of archive files. An archive of common  object  files
       can  be  processed as if it were a series of simple common
       object files.

       If ldptr has the  value  NULL,  ldopen()  opens  filename,
       allocates   and  initializes  the  LDFILE  structure,  and
       returns a pointer to the structure to the calling program.

       If  ldptr  is  valid  and TYPE(ldptr) is the archive magic
       number, ldopen() reinitializes the  LDFILE  structure  for
       the next archive member of filename.

       The  ldopen()  and  ldclose()  functions  work in concert.
       ldclose() returns FAILURE only  when  TYPE(ldptr)  is  the
       archive  magic  number  and  there  is another file in the
       archive to be processed.  Only  then  should  ldopen()  be
       called  with  the  current  value  of  ldptr. In all other
       cases, and particularly when a  new  filename  is  opened,
       ldopen() should be called with a ldptr argument.

       The  following  is a prototype for the use of ldopen() and
       ldclose():

       /* for each filename to be processed */;

       ldptr = NULL; do
        if ( (ldptr = ldopen(filename, ldptr)) != NULL )

        {
        /* check magic number */;
        /* process the file */;
        } } while (ldclose(ldptr) == FAILURE );

       If the value of oldptr is not NULL, ldaopen() opens  filename
  again  and  allocates  and  initializes a new LDFILE
       structure, copying  the  fields  from  oldptr.   ldaopen()
       returns  a  pointer  to the new LDFILE structure. This new
       pointer is independent of the old pointer, oldptr. The two
       pointers  can  be used concurrently to read separate parts
       of the object file. For example, one pointer can  be  used
       to  step  sequentially  through the relocation information
       while the other is  used  to  read  indexed  symbol  table
       entries.

       The  ldopen()  and  ldaopen()  functions open filename for
       reading. If filename cannot be opened or if memory for the
       LDFILE  structure  cannot  be  allocated,  both  functions
       return NULL. A successful open does not  ensure  that  the
       given  file  is a common object file or an archived object
       file.

       The ldopen() function causes the symbol table  header  and
       file descriptor table to be read. Further access, by using
       ldptr, causes other appropriate  sections  of  the  symbol
       table to be read (for example, if you call ldtbread(), the
       symbols or externals are read). To force sections for  the
       symbol  table  in  memory, call ldreadst() with ST_P* constants
 ORed together from st_support.h.

       The program must be loaded with  the  object  file  access
       routine library libmld.a.

SEE ALSO    [Toc]    [Back]

      
      
       fopen(3), ldclose(3), ldfcn(4)



                                                        ldopen(3)
[ Back ]
 Similar pages
Name OS Title
creat Tru64 Open a file for reading or writing
open Tru64 Open a file for reading or writing
open HP-UX open file for reading or writing
open OpenBSD open or create a file for reading or writing
TIFFOpen IRIX open a TIFF file for reading or writing
open FreeBSD open or create a file for reading or writing
open NetBSD open or create a file for reading or writing
XTIFFOpen IRIX open an extended TIFF file for reading or writing
ldclose IRIX close a common object file
ldclose Tru64 close a common object file
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service