Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Sun::Solaris::Exacct::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).

Description

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)