在 Oracle® Solaris 11.2 中进行资源管理

退出打印视图

更新时间: 2014 年 7 月
 
 

libexacct 的 Perl 接口

通过 Perl 接口可以创建 Perl 脚本,该脚本可读取由 exacct 框架生成的记帐文件。您还可以创建编写 exacct 文件的 Perl 脚本。

此接口与底层 C API 在功能上是等效的。如果可能,通过底层 C API 获取的数据将显示为 Perl 数据类型。通过该接口可以更方便地访问数据,不再需要执行缓冲区压缩和解压缩操作。此外,所有内存管理均由 Perl 库执行。

各种与项目、任务和 exacct 相关的功能可分为多个组。每个功能组都位于单独的 Perl 模块中。每个模块都以 Oracle Solaris 标准的 Sun::Solaris:: Perl 软件包前缀开头。Perl exacct 库提供的所有类均位于 Sun::Solaris::Exacct 模块中。

基础 libexacct(3LIB) 库提供针对 exacct 格式文件、目录标记和 exacct 对象的操作。exacct 对象分为两种类型:

  • 项,是指单一的数据值(标量)

  • 组,是指项的列表

下表概述了每个模块。

模块(不应包含空格)
说明
更多信息
Sun::Solaris::Project
Project(3PERL)
Sun::Solaris::Task
此模块提供了访问以下任务操作函数的功能:gettaskid(2)settaskid(2)
Task(3PERL)
Sun::Solaris::Exacct
此模块是顶层 exacct 模块。此模块提供访问与 exacct 相关的系统调用 getacct(2)putacct(2)wracct(2) 的功能。此模块还提供访问 libexacct(3LIB) 库函数 ea_error(3EXACCT) 的功能。此模块同时也提供了所有 exacct EO_*、EW_*、EXR_*、P_* 和 TASK_* 宏的常量。
Exacct(3PERL)
Sun::Solaris::Exacct:: Catalog
此模块提供了面向对象的方法,以访问 exacct 目录标记中的位字段。此模块还提供了访问 EXC_*、EXD_* 和 EXD_* 宏常量的权限。
Exacct::Catalog(3PERL)
Sun::Solaris::Exacct:: File
此模块提供面向对象的方法来访问以下 libexacct 记帐文件函数:ea_open(3EXACCT)ea_close(3EXACCT)ea_get_creator(3EXACCT)ea_get_hostname(3EXACCT)ea_next_object(3EXACCT)ea_previous_object(3EXACCT)ea_write_object(3EXACCT)
Exacct::File(3PERL)
Sun::Solaris::Exacct:: Object
此模块提供面向对象的方法来访问单个 exacct 记帐文件对象。exacct 对象表示为被指定隶属于相应 Sun::Solaris::Exacct::Object 子类的不透明参考。此模块分为项和组两种对象类型。在此级别上提供了访问 ea_match_object_catalog(3EXACCT)ea_attach_to_object(3EXACCT) 函数的方法。
Exacct::Object(3PERL)
Sun::Solaris::Exacct:: Object::Item
此模块提供面向对象的方法来访问单个 exacct 记帐文件项。此类型的对象从 Sun::Solaris::Exacct::Object 中继承。
Exacct::Object::Item(3PERL)
Sun::Solaris::Exacct:: Object::Group
此模块提供面向对象的方法来访问单个 exacct 记帐文件组。此类型的对象从 Sun::Solaris::Exacct::Object 中继承。这些对象提供了对 ea_attach_to_group(3EXACCT) 函数的访问权限。组中包含的各项表示为 Perl 数组。
Exacct::Object::Group(3PERL)
Sun::Solaris::Kstat
此模块提供了 kstat 功能的与 Perl 关联的散列接口。/bin/kstat 提供了此模块的使用示例,此示例采用 Perl 编写。
Kstat(3PERL)

有关说明如何使用上表中介绍的模块的示例,请参见使用 libexacct 的 Perl 接口