slink(1M) slink(1M)
NAME
slink - Binder für STREAMS
SYNTAX
slink [-v] [-p] [-u] [-f] [-c Datei] [Funktion [Arg1 Arg2 ...]]
BESCHREIBUNG
slink dient zum Konfigurieren von STREAMS-Modulen und -Treibern für
eine Anwendung mit dem STREAMS TCP/IP-Protokoll. Gesteuert wird die
Eingabe für slink durch ein Skript, das die einzelnen STREAMS-
Operationen definiert. Dieses Skript wird normalerweise aus der Datei
/etc/strcf.conf (STREAMS-Konfigurationsdatei) gelesen.
OPTIONEN
-c Datei
Skript steht in Datei anstelle von /etc/strcf.
-v Jede Operation wird nach stderr protokolliert.
-p Es werden keine ständigen Verbindungen aufgebaut (slink läuft im
Hintergrund).
-f Es werden keine ständigen Verbindungen aufgebaut und auch kein
eigener Sohnprozess erzeugt (slink läuft im Vordergrund).
-u Abbau aller ständigen Verbindungen (d. h. Netzwerk herunterfah-
ren).
Die Konfigurationsdatei enthält eine oder mehrere Funktionsaufrufe,
die wiederum aus einem oder mehreren Kommandos bestehen. Jedes Kom-
mando repräsentiert den Aufruf einer Benutzerfunktion oder einer Stan-
dardfunktion. Zu diesen Standardfunktionen gehören die STREAMS-
Basisfunktionen open, link und push sowie einige TCP/IP-spezifische
Funktionen.
Bei der Ausführung von slink wird zunächst das Konfigurations-Skript
gelesen und dann die Benutzerfunktion boot ausgeführt, die üblicher-
weise dazu dient, die Standardkonfiguration beim Booten (Laden) herzu-
stellen. Falls beim Aufruf von slink eine Funktion angegeben wurde,
wird diese anstelle von boot ausgeführt.
Normalerweise arbeitet slink mit ständigen Verbindungen (IPLINK) und
beendet sich nach Ausführung der angegebenen Funktion. Wurde die
Option -p angegeben, baut slink eine STREAMS-Konfiguration mit regulä-
ren Verbindungen (ILINK) auf, um anschließend passiv im Hintergrund
zu bleiben. Dabei werden alle während der Konfiguration geöffneten
Datei-Deskriptoren offen gehalten. Wurde die Option -f angegeben, baut
slink eine STREAMS-Konfiguration mit regulären Verbindungen (ILINK)
auf, um dann im Vordergrund zu bleiben. Dabei werden alle während der
Konfiguration geöffneten Datei-Deskriptoren offen gehalten.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
slink(1M) slink(1M)
Eine Benutzerfunktion wird wie folgt definiert:
Funktions-Name {
Kommando1
Kommando2
...
}
Ein Kommando hat folgende Syntax:
Funktion Arg1 Arg2 Arg3 ...
oder:
Variable = Funktion Arg1 Arg2 Arg3 ...
Die Position des Zeilenvorschubs ist zu beachten: Ein Zeilenvorschub
muß jeweils auf die linke und rechte geschweifte Klammer sowie auf
jedes Kommando folgen. Es können mehrere Zeilenvorschübe hintereinan-
der folgen (Lesbarkeit). Ein Gegenschrägstrich (\) am Ende einer Zeile
entspricht einem Leerzeichen, d. h. ein Kommando kann in der nächsten
Zeile fortgesetzt werden. Andere Trennzeichen (Leerzeichen und Tabula-
toren) können beliebig gesetzt werden; es muß jedoch mindestens ein
Trennzeichen zwischen dem Funktionsnamen und den Argumenten eines Kom-
mandos stehen.
Kommentare werden durch # und Zeilenvorschub begrenzt und sind gleich-
bedeutend mit einem einfachen Zeilenvorschub.
Funktions- und Variablenname können aus beliebig vielen Zeichen A-Z,
a-z, 0-9 und bestehen; das erste Zeichen darf jedoch keine Zahl
sein. Funktions- und Variablennamen werden in getrennten Werteberei-
chen verwaltet (d. h. gleiche Namen sind zulässig). Alle Funktionen
sind global definiert und können vorwärts referenziert werden. Alle
Variablen sind innerhalb der definierenden Funktion lokal.
Variablen werden immer dann definiert, wenn sie auf der linken Seite
eines Gleichheitszeichens (=) innerhalb eines Kommandos stehen, so wie
im folgenden Beispiel:
tcp = open /dev/tcp
Die Variable nimmt den Wert an, der vom aufgerufenen Kommando zurück-
geliefert wird. Im obigen Beispiel enthält die Variable tcp den
Datei-Deskriptor, der vom Kommando open zurückgeliefert wird.
Als Argumente für ein Kommando können Variablen, Parameter oder Zei-
chenketten übergeben werden.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
slink(1M) slink(1M)
Eine Variable kann nur dann als Argument übergeben werden, wenn ihr
vorher innerhalb derselben Funktion ein Wert zugewiesen wurde.
Parameter beginnen mit einem Dollarzeichen ($), gefolgt von einer
maximal zweistelligen Dezimalzahl, und werden durch die zugehörigen
Argumente aus dem Funktionsaufruf aktualisiert. Die Angabe eines Para-
meters ohne entsprechendes Argument im Funktionsaufruf führt zu einem
Laufzeitfehler (z. B. wenn in einem Kommando ein Parameter $3 verwen-
det wird, im Funktionsaufruf aber nur 2 Argumente übergeben werden).
Zeichenketten werden als Folge von Buchstaben definiert, die zusätz-
lich noch durch Anführungsstriche (") begrenzt sein können. Anfüh-
rungsstriche verhindern darüberhinaus, daß eine Zeichenkette als
Variablenname oder Parameter interpretiert wird, beziehungsweise sie
gestatten die Verwendung von Leerzeichen, Tabulatoren und Sonderzei-
chen {, }, = und # in der Zeichenkette. Der Gegenschrägstrich (\) kann
dazu benutzt werden, die Sonderzeichen mit besonderer Bedeutung ({, },
=, #, " und \) einzeln zu entwerten.
Die folgenden Standardfunktionen werden durch slink unterstützt:
open Pfadname
Öffnet das Gerät mit dem angegebenen Pfadnamen Pfadname. Liefert
einen Datei-Deskriptor auf die geöffnete STREAMS-Verbindung.
link D1 D2
Hängt die durch D2 bezeichnete STREAMS-Verbindung unterhalb der
durch D1 bezeichneten STREAMS-Verbindung ein. Liefert einen Iden-
tifikator für die neue Verbindung. Falls weder die Option -f noch
die Option -p in der Befehlszeile angegeben wurde, werden alle
STREAMS-Konfigurationen mit ständigen Verbindungen aufgebaut.
Hinweis: D2 kann nach dieser Funktion nicht mehr verwendet wer-
den.
push D Modul
Packe das Modul Modul auf den durch D bezeichneten STREAMS-
Stapel.
sifname D Verbindung Name
Sende eine ioctl-Nachricht SIOCSIFNAME (set interface name) über
die durch D bezeichnete STREAMS-Verbindung an die Verbindung mit
dem Identifikator Verbindung und weise dem Interface den Namen
Name zu.
unitsel D Gerät
Sende eine ioctl-Nachricht IFUNITSEL (unit select) über die
durch D bezeichnete STREAMS-Verbindung und wähle das Gerät Gerät
aus.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
slink(1M) slink(1M)
dlattach D Gerät
Sende eine DLATTACHREQ-Meldung über die durch D bezeichnete
STREAMS-Verbindung für das Gerät Gerät.
initqp Pfadname Queuename Minimum Maximum ...
Sende eine ioctl-Nachricht INITQPARMS (initialize queue parame-
ters) an das Gerät mit dem Pfadnamen Pfadname. Queuename bezeich-
net die Warteschlange, für die Minimum- und Maximum-Grenzwerte
gesetzt werden:
hd Kopf der STREAMS-Verbindung
rq Lese-Warteschlange
wq Schreib-Warteschlange
muxrq Multiplexer Lese-Warteschlange
muxwq Multiplexer Schreib-Warteschlange
Mimimum und Maximum bestimmen die neuen Grenzwerte für die Warte-
schlange. Sowohl Minimum als auch Maximum müssen angegeben wer-
den; wenn nur einer der beiden Parameter geändert werden soll,
kann der andere durch (-) ersetzt werden. Bis zu fünf Tupel der
Form Queuename Minimum Maximum können im Funktionsaufruf abge-
setzt werden.
strcat Zeichenkette1 Zeichenkette2
Konkateniert die Zeichenkette Zeichenkette1 mit der Zeichenkette
Zeichenkette2 und liefert die resultierende Zeichenkette zurück.
return Wert
Setzt den Rückgabewert der aktuellen Funktion auf den Wert Wert.
Hinweis: return beendet nicht die Abarbeitung der aktuellen Funk-
tion.
DATEIEN
/etc/strcf
SIEHE AUCH
strcf(4).
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98