Интерфейс Perl позволяет создавать сценарии на Perl для чтения учетных файлов, созданных архитектурой exacct. Также имеется возможность создания сценариев на Perl, записывающих файлы exacct.
Интерфейс функционально эквивалентен API на C, лежащему в его основе. Когда это возможно, данные, полученные из основного API на C, представляются в виде типов данных Perl. Эта функциональность упрощает доступ к данным и устраняет необходимость в операциях помещения в буфер и изъятия из буфера. Кроме того, все управление памятью выполняется библиотекой Perl.
Разнообразные функции, связанные с проектами, задачами и exacct, разнесены по группам. Каждая группа функций располагается в отдельном модуле Perl. Каждый модуль начинается со стандартного префикса пакетов Perl Sun::Solaris::. Все классы, предоставляемые библиотекой Perl exacct, располагаются в модуле Sun::Solaris::Exacct.
Лежащая в основе библиотека libexacct(3LIB) обеспечивает операции над файлами в формате exacct, тегами каталогов и объектами exacct. Объекты exacct подразделяются на два типа:
элементы, представляющие собой одиночные значения данных (скаляры);
группы, представляющие собой списки элементов.
В следующей таблице дается краткая характеристика каждого из модулей.
Модуль (не должен содержать пробелов) |
Описание |
Дополнительная информация |
---|---|---|
Sun::Solaris::Project |
Этот модуль предоставляет функции для доступа к функциям манипулирования проектами getprojid(2), endprojent(3PROJECT) , fgetprojent(3PROJECT), getdefaultproj(3PROJECT), getprojbyid(3PROJECT), getprojbyname(3PROJECT), getprojent(3PROJECT), getprojidbyname(3PROJECT), inproj(3PROJECT), project_walk(3PROJECT), setproject(3PROJECT) и setprojent(3PROJECT). |
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 представляется в виде непрозрачной ссылки, создаваемой (bless) в соответствующем подклассе Sun::Solaris::Exacct::Object . Этот модуль далее подразделяется на типы объектов Item (элемент) и Group (группа). На этом уровне имеются методы для доступа к функциям 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 |
Этот модуль предоставляет увязанный с Perl интерфейс хеширования для средства kstat. Примером использования этого модуля может служить /bin/kstat, написанный на Perl. |
Kstat(3PERL) |
Примеры использования модулей, описанных в предыдущей таблице, приведены в Использование интерфейса Perl для libexacct.