Handbuch zur dynamischen Ablaufverfolgung in Solaris

fileinfo_t

Die Struktur fileinfo_t liefert Informationen über Dateien. Auf die Datei, auf die sich eine E/A bezieht, wird mit args[2] in den Prüfpunkten start, done, wait-start und wait-done gezeigt. Ob Dateiinformationen vorliegen, hängt davon ab, ob das Dateisystem diese Informationen beim Dispatchen von E/A-Anforderungen bereitstellt. Einige Dateisysteme, insbesondere von anderen Herstellern, geben diese Informationen möglicherweise nicht an. Außerdem können E/A-Anforderungen aus Dateisystemen stammen, für die keine Dateiinformationen existieren. E/A-Operationen mit Dateisystem-Metadaten werden zum Beispiel mit keiner einzelnen Datei in Verbindung gebracht. Schließlich können einige hoch optimierte Dateisysteme E/A aus separaten Dateien in einer einzigen E/A-Anforderung zusammenfassen. In diesem Fall macht·das Dateisystem Dateiinformationen entweder für die Datei, die die meisten E/A-Operationen oder die Datei, die einige der E/A-Operationen durchführt, verfügbar. Alternativ dazu kann es sein, dass das Dateisystem in diesem Fall überhaupt keine Informationen zur Verfügung stellt.

Die Definition der Struktur fileinfo_t lautet:

typedef struct fileinfo {
	string fi_name;                 /* name (basename of fi_pathname) */
	string fi_dirname;              /* directory (dirname of fi_pathname) */
	string fi_pathname;             /* full pathname */
	offset_t fi_offset;             /* offset within file */
	string fi_fs;                   /* filesystem */
	string fi_mount;                /* mount point of file system */
} fileinfo_t;

Das Feld fi_name enthält den Namen der Datei, aber keine Verzeichniskomponenten. Wenn keine Dateiinformationen mit einer E/A in Verbindung gebracht werden können, wird das Feld fi_name auf die Zeichenkette <none> gesetzt. In seltenen Fällen ist der Pfadname für eine Datei unbekannt. Dann wird das Feld fi_name auf die Zeichenkette <unknown> gesetzt.

Das Feld fi_dirname enthält nur die Verzeichniskomponente des Dateinamens. Ebenso wie bei fi_name kann diese Zeichenkette auf <none> gesetzt sein, wenn keine Dateiinformationen vorliegen, oder auf <unknown>, wenn der Pfadname der Datei unbekannt ist.

Das Feld fi_pathname enthält den vollständigen Pfadnamen der Datei. Ebenso wie bei fi_name kann diese Zeichenkette auf <none> gesetzt sein, wenn keine Dateiinformationen vorliegen, oder auf <unknown>, wenn der Pfadname der Datei unbekannt ist.

Das Feld fi_offset enthält den Versatz innerhalb der Datei oder -1, wenn entweder keine Dateiinformationen vorliegen oder der Versatz auf andere Weise nicht vom Dateisystem angegeben wird.