Interface Perl pour libexacct
L'interface Perl permet de créer des scripts Perl capables de lire les fichiers de comptabilisation générés par la structure exacct. Vous pouvez également créer des scripts Perl qui écrivent des fichiers exacct.
Cette interface présente une fonctionnalité équivalente à l'API sous-jacente C. Lorsque cela est possible, les données obtenues à partir de cette API sont présentées en tant que types de données Perl. Cette interface simplifie l'accès aux données et permet d'éviter les opérations de compression et de décompression du tampon. De plus, toutes les opérations liées à la gestion de la mémoire sont réalisées par la bibliothèque Perl.
Les différentes fonctions de projet et de tâche, et les fonctions ayant trait à la structure exacct sont réparties par groupe. Chaque groupe de fonctions est placé dans un module Perl spécifique. Chaque module commence par le préfixe Oracle Solaris standard de package Perl Sun::Solaris::. Toutes les classes fournies par la bibliothèque Perl exacct se trouvent dans le module Sun::Solaris::Exacct.
La bibliothèque libexacct(3LIB) sous-jacente assure des opérations s'appliquant aux fichiers de format exacct, aux balises de catalogue et aux objets exacct. Les objets exacct sont classés en deux types :
Le tableau suivant présente chacun des modules.
| | |
Sun::Solaris::Project
| Ce module fournit des fonctions pour accéder aux fonctions de manipulation de projet getprojid(2), endprojent(3PROJECT) , fgetprojent(3PROJECT), getdefaultproj(3PROJECT), getprojbyid(3PROJECT), getprojbyname(3PROJECT), getprojent(3PROJECT), getprojidbyname(3PROJECT), inproj(3PROJECT), project_walk(3PROJECT), setproject(3PROJECT) , et setprojent(3PROJECT).
| Project(3PERL)
|
Sun::Solaris::Task
| Ce module fournit des fonctionnalités permettant d'accéder aux fonctions de manipulation de tâche gettaskid(2) et settaskid(2).
| Task(3PERL)
|
Sun::Solaris::Exacct
| Il s'agit du module exacct de niveau supérieur. Ce module fournit des fonctions pour accéder aux appels système de type exacct getacct(2), putacct(2), et wracct(2). Ce module fournit également des fonctions pour accéder à la fonction bibliothèque libexacct(3LIB) ea_error(3EXACCT). Les constantes s'appliquant à toutes les macros exacct EO_*, EW_*, EXR_*, P_* et TASK_* sont également disponibles dans ce module.
| Exacct(3PERL)
|
Sun::Solaris::Exacct:: Catalog
| Ce module fournit des méthodes orientées objet pour accéder aux champs de bits d'une balise de catalogue exacct. Il donne également accès aux constantes destinées aux macros EXC_*, EXD_* et EXD_*.
| Exacct::Catalog(3PERL)
|
Sun::Solaris::Exacct:: File
|
| Exacct::File(3PERL)
|
Sun::Solaris::Exacct:: Object
| Ce module fournit des méthodes orientées objet pour accéder à un objet de fichier de comptabilisation exacct. Un objet exacct est représenté sous forme d'une référence opaque incorporée à la sous-classe Sun::Solaris::Exacct::Object appropriée. Ce module est subdivisé à son tour en types d'objet Elément et Groupe. A ce niveau, il existe des méthodes pour accéder aux fonctions ea_match_object_catalog(3EXACCT) et ea_attach_to_object(3EXACCT)
| Exacct::Object(3PERL)
|
Sun::Solaris::Exacct:: Object::Item
| Ce module fournit des méthodes orientées objet pour accéder à un élément de fichier de comptabilisation exacct. Les objets de ce type héritent de Sun::Solaris::Exacct::Object.
| Exacct::Object::Item(3PERL)
|
Sun::Solaris::Exacct:: Object::Group
| Ce module fournit des méthodes orientées objet pour accéder à un groupe de fichiers de comptabilisation exacct. Les objets de ce type héritent de Sun::Solaris::Exacct::Object. Ces objets donnent accès à la fonction ea_attach_to_group(3EXACCT). Les éléments contenus dans le groupe sont présentés sous forme de tableau Perl.
| Exacct::Object::Group(3PERL)
|
Sun::Solaris::Kstat
| Ce module fournit une interface de hachage Perl à l'utilitaire kstat. Vous trouverez un exemple d'utilisation de ce module dans /bin/kstat, écrit en langage Perl.
| Kstat(3PERL)
|
|
Pour obtenir des exemples d'utilisation des modules décrits dans le tableau précédent, reportez-vous à la section Utilisation de l'interface Perl pour accéder à libexacct..