# # Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. # # # Sun::Solaris::Exacct::File documentation. # =head1 NAME Sun::Solaris::Exacct::File - exacct file manipulation =head1 SYNOPSIS use Sun::Solaris::Exacct::File qw(:ALL); my $ea_file = Sun::Solaris::Exacct::File->new($myfile, &O_RDONLY); my $ea_obj = $ea_file->get(); This module provides access to the C functions that manipulate accounting files. The interface is object-oriented and allows the creation and reading of libexacct files. The C library calls wrapped by this module are C, C, C, C, C, C, C, and C. The file read and write methods all operate on C objects and perform all the necessary memory management, packing, unpacking, and structure conversions that are required. =head2 Constants C, C, C, C, and C. Other constants needed by the C method below are in the standard Perl C module. =head2 Functions None. =head2 Class methods B $creator, aflags => $aflags, mode => $mode) >>> This method opens a libexacct file as specified by the mandatory parameters C<$name> and C<$oflags>, and returns a C object, or C if an error occurs. The parameters C<$creator>, C<$aflags>, and C<$mode> are optional and are passed as C<(name => value)> pairs. The only valid values for C<$oflags> are the combinations of C, C, C, and C described below. The C<$creator> parameter is a string describing the creator of the file. If it is required (for instance, when writing to a file) but absent, it is set to the string representation of the caller's UID. The C<$aflags> parameter describes the required positioning in the file for C access: either C or C are allowed. If absent, C is assumed. The C<$mode> parameter is the file creation mode and is ignored unless C is specified in C<$oflags>. If C<$mode> is unspecified, the file creation mode is set to C<0666> (octal). If an error occurs, it can be retrieved with the C function. (See C). B> O_RDONLY Absent or EO_HEAD Open for reading at the start of the file. O_RDONLY EO_TAIL Open for reading at the end of the file. O_WRONLY Ignored File must exist, open for writing at the end of the file. O_WRONLY | O_CREAT Ignored Create file if it does not exist, otherwise truncate and open for writing. O_RDWR Ignored File must exist, open for reading/writing, positioned at the end of the file. O_RDWR | O_CREAT Ignored Create file if it does not exist, otherwise truncate and open for reading/writing. =head2 Object methods B Closing a C There is no explicit C method for a C. The file is closed when the file handle object is undefined or reassigned. B> This method returns a string containing the creator of the file or C if the file does not contain the information. B> This method returns a string containing the hostname on which the file was created, or C if the file does not contain the information. B> This method reads the header information of the next record in the file. In a scalar context the value of the type field is returned as a dual-typed scalar that will be one of C, C, or C. In a list context it returns a two-element list containing the values of the type and catalog fields. The type element is a dual-typed scalar. The catalog element is blessed into the C class. If an error occurs, C or C<(undef, undef)> is returned depending upon context. The status can be accessed with the C function. (See C). B> This method reads the header information of the previous record in the file. In a scalar context it returns the type field. In a list context it returns the two element list containing the values of the type and catalog fields, in the same manner as the C method. Error are also returned in the same manner as the C method. B> This method reads in the libexacct record at the current position in the file and returns a C containing the unpacked data from the file. This object can then be further manipulated using its methods. In case of error C is returned and the error status is made available with the C function. After this operation, the position in the file is set to the start of the next record in the file. B> This method converts the passed list of Cs into libexacct file format and appends them to the libexacct file, which must be open for writing. This method returns C if successful and C otherwise. On failure the error can be examined with the C function. =head2 Exports By default nothing is exported from this module. The following tags can be used to selectively import constants defined in this module: :CONSTANTS EO_HEAD, EO_TAIL, EO_NO_VALID_HDR, EO_POSN_MSK, and EO_VALIDATE_MSK :ALL :CONSTANTS, Fcntl(:DEFAULT). =head1 ATTRIBUTES See C for descriptions of the following attributes: ___________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________________|_____________________________| | Availability | SUNWpl5u | |_____________________________|_____________________________| | Interface Stability | CPAN (http://www.cpan.org) | |_____________________________|_____________________________| =head1 SEE ALSO C, C, C, C, C, C, C, C, C, C, C, C, C, C, C