Exacct::File(3PERL) Perl Library Functions Exacct::File(3PERL)NAMEExacct::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();
DESCRIPTION
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(3EXACCT), ea_close(3EXACCT),
ea_next_object(3EXACCT), ea_previous_object(3EXACCT),
ea_write_object(3EXACCT), ea_get_object(3EXACCT), ea_get_cre‐
ator(3EXACCT), and ea_get_hostname(3EXACCT). 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,
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 Exacct(3PERL).
$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, other‐
wise truncate and open for writing.
O_RDWR Ignored File must exist, open for reading/writ‐
ing, positioned at the end of the file.
O_RDWR | O_CREAT Ignored Create file if it does not exist, other‐
wise truncate and open for reading/writ‐
ing.
Object methods
There is no explicit close() method for a Sun::Solaris::Exacct::File.
The file is closed when the file handle object is undefined or reas‐
signed.
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 infor‐
mation.
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
Exacct(3PERL).
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::Objects 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(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Availability │SUNWpl5u │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Committed │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOea_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), Exacct(3PERL),
Exacct::Catalog(3PERL), Exacct::Object(3PERL),
Exacct::Object::Group(3PERL), Exacct::Object::Item(3PERL), libex‐
acct(3LIB), attributes(5)SunOS 5.11 1 Dec 2002 Exacct::File(3PERL)