st_obj_open man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

st_obj_open(3)							st_obj_open(3)

NAME
       st_ar_member_next, st_file_is_archive, st_is_obj_archive, st_obj_close,
       st_obj_open, st_object_type - routines to check whether an object is an
       archive and to process object files within an archive

SYNOPSIS
       #include <st.h>

       st_status_t st_obj_open(
	       st_obj_t **obj,
	       const char *file,
	       unsigned int flags ); st_status_t st_obj_close(
	       st_obj_t *obj ); st_status_t st_object_type(
	       const char *file,
	       st_object_type_t *otype ); st_status_t st_is_obj_archive(
	       st_obj_t *obj,
	       st_bool_t *is_archive ); st_status_t st_file_is_archive(
	       char *file,
	       st_bool_t *is_archive ); st_status_t st_ar_member_next(
	       st_obj_t *obj );

LIBRARY
       Symbol Table and Object File Access Library (libst.a)

PARAMETERS
       Specifies an address to which st_obj_open() returns an object handle if
       it successfully opens the file specified in the	file  parameter.   For
       st_obj_close(),	 specifies  an	object	handle,	 as  returned  by  the
       st_obj_open() function.	Specifies the file name of the	object	to  be
       opened  or closed, or for which an object type is requested.  Specifies
       how  the	 object	 is  to	 be  opened.  The  open	  flags	  defined   in
       /usr/include/st.h  include  the following: Opens the file for read-only
       access. This is the default.  Disables name demangling for  C++	names.
       By  default,  C++  name	demangling  is	enabled when a file is opened.
       Overrides version checking for object and symbol table formats.	Speci‐
       fies  an	 address to which st_object_type() returns a value identifying
       the  object  type.  The	following  object   types   are	  defined   in
       usr/include/st.h:  Unknown  object  type	 Archive  library  OMAGIC file
       NMAGIC file ZMAGIC file A boolean variable set to true if the  file  is
       an archive.

DESCRIPTION
       The st_obj_open() function opens the named object file for read access.
       It maps the file in memory using mmap(), if possible. If mmap()	fails,
       it  dynamically	allocates  memory in which to read the file. The flags
       parameter indicates how the file is to be opened.  If  it  succeeds  in
       opening the file, it returns an opaque handle for the object to the obj
       parameter. You can use this object handle as an input argument in  sub‐
       sequent calls to other object file access routines.

       The  st_obj_close()  function releases memory dynamically allocated for
       processing the object and unmaps memory to which the  file  was	mapped
       when it was opened.

       The  st_object_type() function returns the object type of the specified
       filename object to the otype parameter. It does not  create  an	object
       handle, nor does it open the object.

       If the named file is an archive file, st_obj_open() initializes archive
       information in the obj structure and returns successfully.

       Archive member objects are processed sequentially. After an archive has
       been  successfully  opened,  call  the  st_ar_member_next() routine. It
       reads in an archive member each time  it	 is  called,  and  it  returns
       ST_E_ARCHIVE_END	 when  there  are no more members. If the archive con‐
       tains no members, st_ar_member_next() returns ST_E_ARCHIVE_EMPTY.  (See
       the code fragment in the EXAMPLE section for proper usage of st_ar_mem‐
       ber_next().)

       The routines st_is_obj_archive() and st_file_is_archive() can  be  used
       to  detect  whether  a  file  or	 object	 handle	 is  an	 archive.  Use
       st_file_is_archive()  before  calling  st_obj_open()  or	 st_obj_is_ar‐
       chive() after calling st_obj_open().

       The  st_obj_open()  function  tests  the object and symbol table format
       versions of the named object file. If either format version includes  a
       major  version  number  that is not supported by this implementation of
       the libst interfaces, st_obj_open() will return	ST_E_MAJ_OBJ_VER  (for
       object  format mismatches) or ST_E_MAJ_SYM_VER (for symbol table format
       mismatches.) If the ST_FORCE flag  is  included	in  the	 st_obj_open()
       flags parameter, it will not perform the format version testing.

RETURN VALUES
       All functions indicate success by returning a value of 0 (zero). A pos‐
       itive return value is an errno value from a  system  call.  A  negative
       return  value  is  a  library  error or informational code. The library
       codes are documented in st.h.

       Return parameters are set to 0 or -1  when  an  error  occurs.  Address
       parameters  are set to 0, and file and procedure handles are set to -1.
       An exception to this is if a NULL  pointer  for	the  object  or	 other
       return  parameter  is input. In these cases, the return parameters will
       be unchanged.  A nonzero return status is the  recommended  method  for
       detecting an error return from a libst function.

EXAMPLE
       The  following  code  fragment illustrates how to use libst routines to
       open object files or archive libraries:

       #include <st.h>

       char *objname; st_bool_t archive; st_status_t status; st_obj_t *obj;

       ...

       if (argc != 2)
	     return; objname = argv[1];

       if (status = st_obj_open(&obj, objname, ST_RDONLY))
	    return status;

       st_is_obj_archive(obj, &archive);

       if (archive)
	    while ((status = st_ar_member_next(obj)) == 0) {
		    /* process member object */
	    } else
	    /* process object */

       st_obj_close(obj);

       ...

FILES
       Header file that contains all definitions and function  prototypes  for
       libst.a	functions Header file that controls name-demangling operations
       for C++ objects

SEE ALSO
       Commands: atom(1)

       Functions:      mmap(2),	     libst_intro(3),	   st_addr_to_file(3),
       st_file_lang(3),		st_obj_calls(3),	 st_obj_file_start(3),
       st_objlist_append(3), st_proc_addr(3), st_sym_value(3)

								st_obj_open(3)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net