EA_OPEN(3EXACCT)           Extended Accounting File Access Library Functions
NAME
       ea_open, ea_close - open or close exacct files
SYNOPSIS
       cc [ 
flag... ] 
file... 
-lexacct [ 
library... ]
       #include <exacct.h>       
int ea_open(
ea_file_t *ef, 
char *name, 
char *creator, 
int aflags,            
int oflags, 
mode_t mode);       
int ea_close(
ea_file_t *ef);
DESCRIPTION
       The 
ea_open() function provides structured access to 
exacct files.
       The 
aflags argument contains the appropriate 
exacct flags necessary
       to describe the file. The 
oflags and 
mode arguments contain the
       appropriate flags and mode to open the file; see <
fcntl.h>. If       
ea_open() is invoked with 
EO_HEAD specified in 
aflags, the resulting
       file is opened with the object cursor located at the first object of
       the file. If 
ea_open() is invoked with 
EO_TAIL specified in 
aflags,
       the resulting file is opened with the object cursor positioned beyond
       the last object in the file. If 
EO_NO_VALID_HDR is set in 
aflags       along with 
EO_HEAD, the initial header record will be returned as the
       first item read from the file. When creating a file, the 
creator       argument should be set (system generated files use the value
       "SunOS"); when reading a file, this argument should be set to 
NULL if
       no validation is required; otherwise it should be set to the expected
       value in the file.
       The 
ea_close() function closes an open 
exacct file.
RETURN VALUES
       Upon successful completion, 
ea_open() and 
ea_close() return 
0.
       Otherwise they return 
-1 and call 
ea_error(3EXACCT) to return the
       extended accounting error value describing the error.
ERRORS
       The 
ea_open() and 
ea_close() functions may fail if:       
EXR_SYSCALL_FAIL                           A system call invoked by the function failed. The                           
errno variable contains the error value set by
                           the underlying call.
       The 
ea_open() function may fail if:       
EXR_CORRUPT_FILE                           The file referred to by 
name is not a valid                           
exacct file.       
EXR_NO_CREATOR                           In the case of file creation, the 
creator                           argument was 
NULL.  In the case of opening an
                           existing file, a 
creator argument was not NULL
                           and does not match the 
creator item of the 
exacct                           file.       
EXR_UNKN_VERSION                           The file referred to by 
name uses an 
exacct file
                           version that cannot be processed by this library.
USAGE
       The 
exacct file format can be used to represent data other than that
       in the extended accounting format.  By using a unique creator type in
       the file header, application writers can develop their own format
       suited to the needs of their application.
EXAMPLES
       Example 1: Open and close exacct file.
       The following example opens the extended accounting data file for
       processes.  The 
exacct file is then closed.
         #include <exacct.h>
         ea_file_t ef;
         if (ea_open(&ef, "/var/adm/exacct/proc", NULL, EO_HEAD,
             O_RDONLY, 0) == -1)                 
exit(1);
         (void) ea_close(&ef);
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Evolving        |
       +--------------------+-----------------+
       |MT-Level            | MT-Safe         |
       +--------------------+-----------------+
SEE ALSO
       ea_error(3EXACCT), 
ea_pack_object(3EXACCT), 
ea_set_item(3EXACCT),       
libexacct(3LIB), 
attributes(7)                              November 29, 2001             EA_OPEN(3EXACCT)