Perl Library Functions Exacct(3PERL)
NAME
Exacct - exacct system calls and error handling
SYNOPSIS
use Sun::Solaris::Exacct qw(:EXACCT_ALL);
my $ea_rec = getacct(P_PID, $$);
DESCRIPTION
This module provides access to the ea_error(3EXACCT) func-
tion and for all the extended accounting system calls. Con-
stants from the various libexacct(3LIB) header files are also provided. ConstantsThe P_PID, P_TASKID, P_PROJID and all the EW_*, EP_*, EXR_*
macros are provided as Perl constants. Functionsgetacct($idtype, $id)
The $idtype parameter must be either P_TASKID or P_PID
and $id must be a corresponding task or process ID. This
function returns an object of typeSun::Solaris::Exacct::Object, representing the unpacked
accounting buffer returned by the underlying getacct(2) system call. In the event of error, undef is returned.putacct($idtype, $id, $record)
The $idtype parameter must be either P_TASKID or P_PID
and $id must be a corresponding task or process ID. If
$record is of type Sun::Solaris::Exacct::Object, it is
converted to the corresponding packed libexacct objectand passed to the putacct(2) system call. If $record is
not of type Sun::Solaris::Exacct::Object it is converted
to a string using the normal Perl conversion rules andstored as a raw buffer. For predictable and endian-
independent results, any raw buffers should be con-
structed using the Perl pack() function. This function returns true on success and false on failure.wracct($idtype, $id, $flags)
The $idtype parameter must be either P_TASKID or P_PID
and $id must be a corresponding task or process ID. The
$flags parameter must be either EW_INTERVAL or
EW_PARTIAL. The parameters are passed directly to the
underlying wracct(2) system call. This function returns true on success and false on failure.SunOS 5.11 Last change: 1 Dec 2002 1
Perl Library Functions Exacct(3PERL)
ea_error()
This function provides access to the ea_error(3EXACCT)
function. It returns a double-typed scalar that becomes
one of the EXR_* constants. In a string context it
becomes a descriptive error message. This is the exacctequivalent to the $!(errno) Perl variable.
ea_error_str()
This function returns a double-typed scalar that in a
numeric context will be one of the EXR_* constants as
returned by ea_error. In a string context it describes
the value returned by ea_error. If ea_error returns
EXR_SYSCALL_FAIL, the string value returned is the value
returned by strerror(3C). This function is provided as a convenience so that repeated blocks of code like the following can be avoided:if (ea_error() == EXR_SYSCALL_FAIL) {
print("error: $!\n");
} else {print("error: ", ea_error(), "\n");
}ea_register_catalog($cat_pfx, $catalog_id, $export, @idlist)
This convenience function is a wrapper around theSun::Solaris::Exacct::Catalog->register() method.
ea_new_catalog($integer)
ea_new_catalog($cat_obj)
ea_new_catalog($type, $catalog, $id)
These convenience functions are wrappers around theSun::Solaris::Exacct::Catalog->new() method. See
Exacct::Catalog(3PERL).
ea_new_file($name, $oflags, creator => $creator, aflags =>
$aflags, mode => $mode)
This convenience function is a wrapper around theSun::Solaris::Exacct::File->new() method. See
Exacct::File(3PERL).
SunOS 5.11 Last change: 1 Dec 2002 2
Perl Library Functions Exacct(3PERL)
ea_new_item($catalog, $value)
This convenience function is a wrapper around theSun::Solaris::Exacct::Object::Item->new() method. See
Exacct::Object::Item(3PERL).
ea_new_group($catalog, @objects)
This convenience function is a wrapper around theSun::Solaris::Exacct::Object::Group->new() method. See
Exacct::Object::Group(3PERL).
ea_dump_object($object, $filehandle)
This convenience function is a wrapper around theSun::Solaris::Exacct::Object->dump() method. See
Exacct::Object(3PERL).
Class methods None. Object methods None. ExportsBy default nothing is exported from this module. The follow-
ing tags can be used to selectively import constants and functions defined in this module: :SYSCALLS getacct(), putacct(), and wracct():LIBCALLS ea_error() and ea_error_str()
:CONSTANTS P_PID, P_TASKID, P_PROJID, EW_*, EP_*,
and EXR_*
:SHORTHAND ea_register_catalog(),
ea_new_catalog(), ea_new_file(),
ea_new_item(), and ea_new_group()
:ALL :SYSCALLS, :LIBCALLS, :CONSTANTS, and :SHORTHANDSunOS 5.11 Last change: 1 Dec 2002 3
Perl Library Functions Exacct(3PERL)
:EXACCT_CONSTANTS :CONSTANTS, plus the :CONSTANTS tags
for Sun::Solaris::Catalog, Sun::Solaris::File, and Sun::Solaris::Object:EXACCT_ALL :ALL, plus the :ALL tags for
Sun::Solaris::Catalog, Sun::Solaris::File, and Sun::Solaris::ObjectATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Availability | SUNWpl5u ||_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
SEE ALSO
getacct(2), putacct(2), wracct(2), ea_error(3EXACCT),
Exacct::Catalog(3PERL), Exacct::File(3PERL),
Exacct::Object(3PERL), Exacct::Object::Group(3PERL),
Exacct::Object::Item(3PERL), libexacct(3LIB), attributes(5)
NOTES The modules described in the section 3PERL manual pages makeextensive use of the Perl "double-typed scalar" facility.
This facility allows a scalar value to behave either as an integer or as a string, depending upon context. It is thesame behavior as exhibited by the $! Perl variable (errno).
It is useful because it avoids the need to map from an integer value to the corresponding string to display a value. Some examples are provided below:# Assume $obj is a Sun::Solaris::Item
my $type = $obj->type();
# Print "2 EO_ITEM"
printf("%d %s\n", $type, $type);
# Behave as an integer, $i == 2
my $i = 0 + $type;
SunOS 5.11 Last change: 1 Dec 2002 4
Perl Library Functions Exacct(3PERL)
# Behave as a string, $s = "abc EO_ITEM xyx"
my $s = "abc $type xyz";
Wherever a function or method is documented as returning adouble-typed scalar, the returned value exhibits this type
of behavior.SunOS 5.11 Last change: 1 Dec 2002 5