ttysrch(4) ttysrch(4)
NAME
ttysrch - Verzeichnis-Suchliste für ttyname
BESCHREIBUNG
ttysrch ist eine optionale Datei, die von der Bibliotheksfunktion
ttyname(3C) benutzt wird. In dieser Datei sind die Namen derjenigen
Dateien und Verzeichnisse in /dev enthalten, in denen sich die
Terminal- und Terminal-relevanten Gerätedateien befinden. Diese Datei
enthält Informationen darüber, welche Dateien beziehungsweise Unter-
verzeichnisse von /dev welche terminal-relevanten Gerätedateien ent-
halten und welche Datei beziehungsweise welches Verzeichnis als erstes
durchsucht werden soll; dadurch soll die Ausführungsgeschwindigkeit
von ttyname erhöht werden. Die Datei- und Unterverzeichnisnamen müssen
in separaten Zeilen enthalten sein und mit /dev beginnen. Pfadnamen,
die nicht mit /dev beginnen, werden ignoriert; in diesem Fall wird an
die Konsole eine Warnung geschickt. Leerzeilen (d. h. Leerzeilen, die
nur Zwischenraumzeichen enthalten), sowie Zeilen, die mit dem Kommen-
tarzeichen (#) beginnen, werden ignoriert. Mit Ausnahme des speziellen
Eintrags /dev durchsucht ttyname die Unterverzeichnisse rekursiv nach
einer passenden Datei. Wenn /dev in der Datei ttysrch enthalten ist,
wird das Verzeichnis /dev selbst durchsucht; seine Unterverzeichnisse
werden allerdings nicht rekursiv durchsucht.
ttyname sucht unter den Gerätedateien nach einer Datei, deren Geräte-
/Geräteklassennummer, Dateisystemkennung sowie I-Node-Nummer zu dem
Dateideskriptor passen, der als Argument angegeben war. Wird keine
passende Datei gefunden, begnügt es sich mit einer Datei mit einer
passenden Geräte-/Geräteklassennummer und Dateisystemkennung (falls
vorhanden). Dieser Algorithmus ist jedoch nicht besonders effizient,
wenn der Dateideskriptor einem Clone-Gerät [siehe clone(7)] zugeordnet
ist: Die I-Node-Nummer der Gerätedatei, die einem clonebaren Gerät
zugeordnet ist, paßt in keinem Fall zur I-Node-Nummer des Dateide-
skriptors, der durch den open-Systemaufruf für dieses clonebare Gerät
zurückgegeben wird. Für derartige Fälle können Einträge in die Datei
/etc/ttysrch eingebracht werden, mit der seine Ausführungsgeschwindig-
keit auch bei Clone-Geräten, die in einem System als Terminals benutzt
werden (z. B. für ein Remote-Login), gesteigert werden kann. Dies ist
jedoch nur von Nutzen, wenn die Geräte (minor devices), die einem
Clone-Gerät zugeordnet sind, in ein Unterverzeichnis gesetzt werden
(beachten Sie bitte, daß es für Clone-Geräte nicht in jedem Fall Gerä-
tedateien gibt; ttyname kann dann nicht ausgeführt werden). Wenn
/dev/tcp beispielsweise ein Clone-Gerät ist, könnte es ein Unterver-
zeichnis /dev/tcp geben, das die Dateien 0, 1, 2 usw. enthält, die den
Gerätenummern des starlan-Treibers zugeordnet sind. In einem optiona-
len zweiten Feld können in der Datei /etc/ttysrch die Vergleichskrite-
rien angegeben werden. Dieses Feld wird durch Zwischenraumzeichen
(eine beliebige Kombination aus Leer- oder Tabulatorzeichen) begrenzt.
Der Buchstabe M steht für Geräte-/Geräteklassennummer, F für Dateisy-
stemkennung und I für I-Node-Nummer.
Die folgenden Optionen (Buchstaben) sind kein Standard auf V5.4-
Systemen, können aber verwendet werden, um die
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
ttysrch(4) ttysrch(4)
Ausführungsgeschwindigkeit von ttyname zu erhöhen.
Mit der Option f ist ein schneller Zugriff auf I-Nodes möglich. Sie
kann dazu benutzt werden, die Geschwindigkeit für die Suche nach einem
I-Node zu erhöhen, und sollte auf Systemen mit einer großen Anzahl
Terminals oder Pseudo-TTY-Geräten benutzt werden. Achtung: Mit der
Option f werden Unterverzeichnisse nicht rekursiv durchsucht.
Der Buchstabe X gibt an, daß das angegebene Dateiverzeichnis nicht
durchsucht werden soll.
Der Buchstabe N gibt an, daß eine Gerätenummer als Argument folgt.
Dadurch kann angegeben werden, welche Gerätenummern in einem bestimm-
ten Dateiverzeichnis vorkommen. Der Buchstabe N und die folgende Gerä-
tenummer dürfen in der Zeile mehrmals vorkommen. Wenn die zu ttyname
angegebenen Gerätenummern mit einer durch den Buchstabe N angegebenen
Gerätenummer übereinstimmen, wird dieses Dateiverzeichnis zuerst
durchsucht.
Der Buchstabe P gibt an, daß ein Gerätenamensmuster als Argument
folgt. Dadurch kann angegeben werden, wie die Dateinamen eines Datei-
verzeichnisses im Falle einer Überprüfung zusammengesetzt werden sol-
len.
Um zu vermeiden, daß ttyname alle Einträge eines Dateiverzeichnisses
einfach nacheinander testet, wird versucht, den Eintrag des Dateiver-
zeichnisses zu testen, der die Geräteklassennummer des zu ttyname
angegebenen Dateideskriptors hat. Dazu muß ttyname wissen, wie die
Dateinamen eines Dateiverzeichnisses heißen. ttyname hat zwar intern
voreingestellte Namensmuster, es können aber auch der Buchstabe P und
das folgende Musterargument verwendet werden. Die angegebenen Muster
müssen irgendwo %d enthalten. %d wird durch die Geräeteklassennummer
ersetzt. Wie bei der printf-Funktion kann man auch eine Feldgröße für
die Geräteklassennummer angeben, z. B. %3d. Bei dem /etc/ttysrch-
Eintrag
/dev/term P tty%3d
und einer Geräteklassennummer 20 wird für Tests der Dateiname
/dev/term/tty020 verwendet.
Der Buchstabe E gibt an, daß der Eintrag eine Datei und kein Dateiver-
zeichnis ist.
Wenn für einen Eintrag keine Option angegeben ist, wird standardmäßig
die Buchstabenkombination MFI benutzt, d. h., es werden alle drei Ver-
gleichskriterien angewandt. Für Clone-Geräte sollte das Feld den Ein-
trag MF enthalten; die I-Node-Nummer kann dann als Vergleichskriterium
entfallen.
Wenn die Datei /etc/ttysrch nicht vorhanden ist, durchsucht ttyname
zunächst die /dev-Unterverzeichnisse /dev/term, /dev/pts und /dev/xt.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
ttysrch(4) ttysrch(4)
Wenn die Terminal-Geräte in einem System nicht in einem der aufgeführ-
ten Verzeichnisse installiert sind, kann die Datei ttysrch mit dieser
Verzeichnisliste zur Steigerung der Ausführungsgeschwindigkeit ange-
legt werden.
BEISPIELE
Das nachfolgende Beispiel zeigt eine /etc/ttysrch-Datei:
/dev/term/ttyc0 MFE
/dev/inet MFN 29 P %d N 30
/dev/term fIP tty%3d
/dev/pts MFI
/dev/xt MFI
/dev/slan MF
Mit dieser Datei durchsucht ttyname zundchst die aufgelisteten Ver-
zeichnisse; wenn es beim Durchsuchen des Verzeichnisses /dev/slan eine
Datei findet, deren Geräte-/Geräteklassennummer und Dateisystemkennung
zum Dateideskriptor-Argument von ttyname passen, sollte dieser Geräte-
name als passend betrachtet werden.
Beim Durchsuchen von /dev/term vergleicht ttyname nur die I-Nodes. Die
Unterverzeichnisse von /dev/term werden nicht rekursiv durchsucht.
DATEIEN
/etc/ttysrch
SIEHE AUCH
ttyname(3C), clone(7).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98