Perl Interface to libexacct
The Perl interface allows you to create Perl scripts that can read the
accounting files produced by the exacct framework. You
can also create Perl scripts that write exacct
files.
The interface is functionally equivalent to the underlying C API. When possible, the data
obtained from the underlying C API is presented as Perl data types. This interface allows easier
access to the data, and removes the need for buffer pack and unpack operations. Moreover, all memory
management is performed by the Perl library.
The various project, task, and exacct-related functions
are separated into groups. Each group of functions is located in a
separate Perl module. Each module begins with Oracle Solaris standard
Sun::Solaris:: Perl package prefix. All of the classes
provided by the Perl exacct library are found under the
Sun::Solaris::Exacct module.
The underlying libexacct(3LIB) library provides operations on exacct format files,
catalog tags, and exacct objects. exacct objects are
subdivided into two types:
-
Items, which are single-data values (scalars)
-
Groups, which are lists of Items
The following table summarizes each of the modules.
|
|
|
Sun::Solaris::Project
|
This module provides functions to access the project manipulation functions getprojid(2), endprojent(3PROJECT) , fgetprojent(3PROJECT), getdefaultproj(3PROJECT), getprojbyid(3PROJECT), getprojbyname(3PROJECT), getprojent(3PROJECT), getprojidbyname(3PROJECT), inproj(3PROJECT), project_walk(3PROJECT), setproject(3PROJECT) , and setprojent(3PROJECT).
|
Project(3PERL)
|
Sun::Solaris::Task
|
|
Task(3PERL)
|
Sun::Solaris::Exacct
|
This module is the top-level exacct module. This module provides functions
to access the exacct-related system calls getacct(2), putacct(2), and wracct(2). This module also provides functions to access the libexacct(3LIB) library function ea_error(3EXACCT). Constants for all of the exacct EO_*, EW_*, EXR_*, P_*,
and TASK_* macros are also provided in this module.
|
Exacct(3PERL)
|
Sun::Solaris::Exacct:: Catalog
|
This module provides object-oriented methods to access the bitfields in an
exacct catalog tag. This module also provides access to the constants for the
EXC_*, EXD_*, and EXD_* macros.
|
Exacct::Catalog(3PERL)
|
Sun::Solaris::Exacct:: File
|
|
Exacct::File(3PERL)
|
Sun::Solaris::Exacct:: Object
|
This module provides object-oriented methods to access an individual exacct
accounting file object. An exacct object is represented as an opaque reference
blessed into the appropriate Sun::Solaris::Exacct::Object subclass. This module
is further subdivided into the object types Item and Group. At this level, there are methods to
access the ea_match_object_catalog(3EXACCT) and ea_attach_to_object(3EXACCT) functions.
|
Exacct::Object(3PERL)
|
Sun::Solaris::Exacct:: Object::Item
|
This module provides object-oriented methods to access an individual exacct
accounting file Item. Objects of this type inherit from
Sun::Solaris::Exacct::Object.
|
Exacct::Object::Item(3PERL)
|
Sun::Solaris::Exacct:: Object::Group
|
This module provides object-oriented methods to access an individual exacct
accounting file Group. Objects of this type inherit from
Sun::Solaris::Exacct::Object. These objects provide access to the ea_attach_to_group(3EXACCT) function. The Items contained within the Group are presented as a Perl
array.
|
Exacct::Object::Group(3PERL)
|
Sun::Solaris::Kstat
|
This module provides a Perl tied hash interface to the kstat facility. A
usage example for this module can be found in /bin/kstat, which is written in
Perl.
|
Kstat(3PERL)
|
|
For examples that show how to use the modules described in the previous table, see Using the Perl Interface to libexacct.