Sun::Solaris::Exacct::File - exacct file manipulation
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 "libexacct(3LIB)" 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 "ea_open(3EAXACCT)", "ea_close(3EAXACCT)", "ea_next_object(3EAXACCT)", "ea_previous_object(3EAXACCT)", "ea_write_object(3EAXACCT)", "ea_get_object(3EAXACCT)", "ea_get_creator(3EAXACCT)", and "ea_get_hostname(3EAXACCT)". The file read and write methods all operate on "Sun::Solaris::Exacct::Object" objects and perform all the necessary memory management, packing, unpacking, and structure conversions that are required. Constants "EO_HEAD", "EO_TAIL", "EO_NO_VALID_HDR", "EO_POSN_MSK", and "EO_VALIDATE_MSK". Other constants needed by the "new()" method below are in the standard Perl "Fcntl" module. Functions None. Class methods "new($name, $oflags, creator => $creator, aflags => $aflags, mode => $mode)" This method opens a libexacct file as specified by the mandatory parameters $name and $oflags, and returns a "Sun::Solaris::Exacct::File" object, or "undef" if an error occurs. The parameters $creator, $aflags, and $mode are optional and are passed as "(name =" value)> pairs. The only valid values for $oflags are the combinations of "O_RDONLY", "O_WRONLY", "O_RDWR", and "O_CREAT" described below. The $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 $aflags parameter describes the required positioning in the file for "O_RDONLY" access: either "EO_HEAD" or "EO_TAIL" are allowed. If absent, "EO_HEAD" is assumed. The $mode parameter is the file creation mode and is ignored unless "O_CREAT" is specified in $oflags. If $mode is unspecified, the file creation mode is set to 0666 (octal). If an error occurs, it can be retrieved with the "Sun::Solaris::Exacct::ea_error()" function. (See Sun::Solaris::Exacct(3)). " $oflags $aflags Action" 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. Object methods Note: Closing a "Sun::Solaris::Exacct::File" There is no explicit "close()" method for a "Sun::Solaris::Exacct::File". The file is closed when the file handle object is undefined or reassigned. "creator()" This method returns a string containing the creator of the file or "undef" if the file does not contain the information. "hostname()" This method returns a string containing the hostname on which the file was created, or "undef" if the file does not contain the information. "next()" 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 "EO_ITEM", "EO_GROUP", or "EO_NONE". 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 "Sun::Solaris::Exacct::Catalog" class. If an error occurs, "undef" or "(undef, undef)" is returned depending upon context. The status can be accessed with the "Sun::Solaris::Exacct::ea_error()" function. (See Sun::Solaris::Exacct(3)). "previous()" 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 "next()" method. Error are also returned in the same manner as the "next()" method. "get()" This method reads in the libexacct record at the current position in the file and returns a "Sun::Solaris::Exacct::Object" containing the unpacked data from the file. This object can then be further manipulated using its methods. In case of error "undef" is returned and the error status is made available with the "Sun::Solaris::Exacct::ea_error()" function. After this operation, the position in the file is set to the start of the next record in the file. "write(@ea_obj)" This method converts the passed list of "Sun::Solaris::Exacct::Object"s into libexacct file format and appends them to the libexacct file, which must be open for writing. This method returns "true" if successful and "false" otherwise. On failure the error can be examined with the "Sun::Solaris::Exacct::ea_error()" function. 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).
User Contributed Perl Documentation ..::pod::File(3) NAME Sun::Solaris::Exacct::File - exacct file manipulation 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 "libexacct(3LIB)" 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 "ea_open(3EAXACCT)", "ea_close(3EAXACCT)", "ea_next_object(3EAXACCT)", "ea_previous_object(3EAXACCT)", "ea_write_object(3EAXACCT)", "ea_get_object(3EAXACCT)", "ea_get_creator(3EAXACCT)", and "ea_get_hostname(3EAXACCT)". The file read and write methods all operate on "Sun::Solaris::Exacct::Object" objects and perform all the necessary memory management, packing, unpacking, and structure conversions that are required. Constants "EO_HEAD", "EO_TAIL", "EO_NO_VALID_HDR", "EO_POSN_MSK", and "EO_VALIDATE_MSK". Other constants needed by the "new()" method below are in the standard Perl "Fcntl" module. Functions None. Class methods "new($name, $oflags, creator => $creator, aflags => $aflags, mode => $mode)" This method opens a libexacct file as specified by the mandatory parameters $name and $oflags, and returns a "Sun::Solaris::Exacct::File" object, or "undef" if an error occurs. The parameters $creator, $aflags, and $mode are optional and are passed as "(name =" value)> pairs. The only valid values for $oflags are the combinations of "O_RDONLY", "O_WRONLY", "O_RDWR", and "O_CREAT" described below. The $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 $aflags parameter describes the required positioning in the file for "O_RDONLY" access: either "EO_HEAD" or "EO_TAIL" are allowed. If absent, "EO_HEAD" is assumed. The $mode parameter is the file creation mode and is ignored unless "O_CREAT" is specified in $oflags. If $mode is unspecified, the file creation mode is set to 0666 (octal). If an error occurs, it can be retrieved with the "Sun::Solaris::Exacct::ea_error()" function. (See Sun::Solaris::Exacct(3)). " $oflags $aflags Action" 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. Object methods Note: Closing a "Sun::Solaris::Exacct::File" There is no explicit "close()" method for a "Sun::Solaris::Exacct::File". The file is closed when the file handle object is undefined or reassigned. "creator()" This method returns a string containing the creator of the file or "undef" if the file does not contain the information. "hostname()" This method returns a string containing the hostname on which the file was created, or "undef" if the file does not contain the information. "next()" 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 "EO_ITEM", "EO_GROUP", or "EO_NONE". 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 "Sun::Solaris::Exacct::Catalog" class. If an error occurs, "undef" or "(undef, undef)" is returned depending upon context. The status can be accessed with the "Sun::Solaris::Exacct::ea_error()" function. (See Sun::Solaris::Exacct(3)). "previous()" 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 "next()" method. Error are also returned in the same manner as the "next()" method. "get()" This method reads in the libexacct record at the current position in the file and returns a "Sun::Solaris::Exacct::Object" containing the unpacked data from the file. This object can then be further manipulated using its methods. In case of error "undef" is returned and the error status is made available with the "Sun::Solaris::Exacct::ea_error()" function. After this operation, the position in the file is set to the start of the next record in the file. "write(@ea_obj)" This method converts the passed list of "Sun::Solaris::Exacct::Object"s into libexacct file format and appends them to the libexacct file, which must be open for writing. This method returns "true" if successful and "false" otherwise. On failure the error can be examined with the "Sun::Solaris::Exacct::ea_error()" function. 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). ATTRIBUTES See attributes(7) for descriptions of the following attributes: ___________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________________|_____________________________| | Availability | SUNWpl5u | |_____________________________|_____________________________| | Interface Stability | CPAN (http://www.cpan.org) | |_____________________________|_____________________________| SEE ALSO "ea_close(3EXACCT)", "ea_get_creator(3EXACCT)", "ea_get_hostname(3EXACCT)", "ea_get_object(3EXACCT)", "ea_next_object(3EXACCT)", "ea_open(3EXACCT)", "ea_previous_object(3EXACCT)", "ea_write_object(3EXACCT)", Sun::Solaris::Exacct(3), Sun::Solaris::Exacct::Catalog(3), Sun::Solaris::Exacct::Object(3), Sun::Solaris::Exacct::Object::Group(3), Sun::Solaris::Exacct::Object::Item(3), "libexacct(3LIB)", attributes(7) perl v5.32.0 2022-06-28 ..::pod::File(3)