stropts(5) stropts(5)
NAME
stropts - STREAMS-Schnittstelle
SYNTAX
#include <stropts.h>
BESCHREIBUNG
Die Include-Datei <stropts.h> definiert die Struktur bandinfo, die
zumindest folgende Komponenten enthält:
unsigned char bipri
int biflag
Die Include-Datei <stropts.h> definiert die Struktur strpeek, die
zumindest folgende Komponenten enthält:
struct strbuf ctlbuf
struct strbuf databuf
long flags
Die Include-Datei <stropts.h> definiert die Struktur strbuf, die
zumindest folgende Komponenten enthält:
int maxlen Maximale Pufferlänge
int len Datenlänge
char *buf Zeiger auf den Puffer
Die Include-Datei <stropts.h> definiert die Struktur strfdinsert, die
zumindest folgende Komponenten enthält:
struct strbuf ctlbuf
struct strbuf databuf
long flags
int fildes
int offset
Die Include-Datei <stropts.h> definiert die Struktur strioctl, die
zumindest folgende Komponenten enthält:
int iccmd
int ictimout
int iclen
char *icdp
Die Include-Datei <stropts.h> definiert die Struktur strrecvfd, die
zumindest folgende Komponenten enthält:
int fd
uidt uid
gidt gid
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
stropts(5) stropts(5)
Die Typen uidt und gidt sind über typedef definiert, wie in
<sys/types.h> beschrieben.
Die Include-Datei <stropts.h> definiert die Struktur strlist, die
zumindest folgende Komponenten enthält:
int slnmods
struct strmlist *slmodlist
Die Include-Datei <stropts.h> definiert die Struktur strmlist, die
zumindest folgende Komponenten enthält:
char lname[FMNAMESZ+1]
Zumindest die folgenden Makros sind zur Verwendung als Argument
request für ioctl() definiert:
IPUSH STREAMS-Modul wird an den Anfang des aktuellen STREAM
direkt unter den STREAM-Kopf gesetzt.
IPOP STREAMS-Modul, das direkt unter dem STREAM-Kopf
steht, wird entfernt.
ILOOK Der Name des Moduls, das direkt unter dem STREAM-Kopf
steht, wird abgerufen und in eine Zeichenkette
gestellt. Zur Verwendung als Argument arg sind zumin-
dest die folgenden Macros definiert:
FMNAMESZ Die Mindestgröße in Bytes für den Puf-
fer, auf den das Argument arg verweist.
IFLUSH Mit dieser Anforderung wird abhängig vom Wert des
Arguments arg der Inhalt aller Ein- und/oder Ausgabe-
warteschlangen gelöscht. Zur Verwendung als Argument
arg sind zumindest die folgenden Macros definiert:
FLUSHR Inhalt der Lesewarteschlangen löschen.
FLUSHW Inhalt der Schreibwarteschlangen
löschen.
FLUSHRW Inhalt der Lese- und Schreibwarteschlan-
gen löschen.
IFLUSHBAND Nur Daten des angegebenen Bereichs löschen.
ISETSIG Teilt dem STREAM-Kopf mit, daß für den Prozeß das
Signal SIGPOLL [siehe signal(2) und signal(5)] ausge-
geben werden soll, wenn ein bestimmtes Ereignis im
STREAM eintritt.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
stropts(5) stropts(5)
Die Include-Datei <stropts.h> definiert folgende
Angaben als mögliche Werte für das Argument arg wenn
ISETSIG angegeben ist:
SRDNORM Eine normale Meldung (Prioritätsbereich
auf 0 gesetzt) ist oben in der Warte-
schlange für den STREAM-Kopf eingegan-
gen.
SRDBAND Eine Meldung mit einem Prioritätsbereich
ungleich Null ist oben in der Warte-
schlange für den STREAM-Kopf eingegan-
gen.
SINPUT Eine Meldung, die keine hohe Priorität
aufweist, ist oben in der Warteschlange
für den STREAM-Kopf eingegangen.
SHIPRI Eine Meldung mit hoher Priorität liegt
in der Warteschlange für den STREAM-Kopf
vor.
SOUTPUT Die Schreibwarteschlange für normale
Daten (Prioritätsbereich 0) direkt unter
dem STREAM-Kopf ist nicht mehr voll.
Hierüber wird dem Prozeß mitgeteilt, daß
in der Warteschlange wieder Platz ist,
um normale Daten stream-abwärts zu sen-
den (beziehungsweise zu schreiben).
SWRNORM Entspricht SOUTPUT.
SWRBAND Die Schreibwarteschlange für einen Prio-
ritätsbereich ungleich Null direkt unter
dem STREAM-Kopf ist nicht mehr voll.
SMSG Eine STREAMS-Signalmeldung mit dem Sig-
nal SIGPOLL hat den Anfang der Warte-
schlange für den STREAM-Kopf erreicht.
SERROR Eine Benachrichtigung über eine Fehler-
bedingung ist im STREAM-Kopf eingegan-
gen.
SHANGUP Eine Benachrichtigung über ein Hangup
ist im STREAM-Kopf eingegangen.
SBANDURG Bei gemeinsamer Verwendung mit SRDBAND,
wird das Signal SIGURG anstelle von
SIGPOLL ausgegeben, wenn eine Priori-
tätsmeldung den Anfang der Warteschlange
für den STREAM-Kopf erreicht.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
stropts(5) stropts(5)
IGETSIG Gibt die Ereignisse zurück, für die der aufrufende
Prozeß derzeit registriert ist, um ein SIGPOLL-Signal
zu senden.
IFIND Vergleicht die Namen aller im STREAM vorliegender
Module mit dem Namen, auf den das Argument arg zeigt.
IPEEK Hierdurch kann ein Prozeß die Informationen aus der
ersten Meldung in der Warteschlange für den STREAM-
Kopf abrufen, ohne die Meldung aus der Warteschlange
zu entfernen. Zur Verwendung als Argument arg sind
zumindest die folgenden Makros definiert:
RSHIPRI Sucht nur nach Meldungen mit hoher Prio-
rität.
ISRDOPT Aktiviert den Lesemodus. Zur Verwendung als Argument
arg sind zumindest die folgenden Makros definiert:
RNORM Byte-STREAM-Modus (Standard).
RMSGD Modus für Meldung löschen (message-
discard mode).
RMSGN Modus für Meldung nicht löschen
(message-nondiscard mode).
RPROTNORM read() schlägt mit dem Return-Wert
EBADMSG fehl, wenn eine Meldung, die
einen Steuerabschnitt enthält, am Anfang
der Warteschlange für den STREAM-Kopf
steht.
RPROTDAT Gibt den Steuerabschnitt einer Meldung
als Daten wieder, wenn ein Prozeß einen
read()-Aufruf ausgibt.
RPROTDIS Löscht den Steuerabschnitt einer Meldung
und gibt alle Datenabschnitte zurück,
wenn ein Prozeß einen read()-Aufruf aus-
gibt.
IGRDOPT Gibt die aktuelle Einstellung des Lesemodus zurück.
INREAD Zählt die Anzahl der Datenbytes in Datenblöcken aus
der ersten Meldung in der Warteschlange für den
STREAM-Kopf.
IFDINSERT Erstellt eine Meldung aus dem/den angegebenen
Puffer(n), fügt Informationen zu einem anderen STREAM
hinzu und sendet die Meldung stream-abwärts.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
stropts(5) stropts(5)
ISTR Erstellt eine interne STREAMS-ioctl()-Meldung und
sendet diese Meldung stream-abwärts.
ISWROPT Setzt den Schreibmodus. Zumindest folgende Makros
sind für die Verwendung als Argument arg definiert:
SNDZERO Sendet eine leere Meldung stream-
abwärts, wenn ein write()-Aufruf aus
0 Byte erfolgt.
IGWROPT Gibt die aktuelle Einstellung des Schreibmodus
zurück.
ISENDFD Fordert den fd zugeordneten STREAM auf, eine Meldung
mit einem Dateizeiger an den STREAM-Kopf am anderen
Ende einer STREAMS-Pipe zu senden.
IRECVFD Ruft den Dateideskriptor ab, der der Meldung zugeord-
net ist, die durch ISENDFD eines ioctl()-Aufrufs
über eine STREAMS-Pipe gesendet wurde.
ILIST Über diese Anforderung kann der Prozeß alle Modulna-
men im STREAM bis zum obersten Treibernamen ein-
schließlich auflisten.
IATMARK Über diese Anforderung kann der Prozeß erkennen, ob
die aktuelle Meldung in der Warteschlange für den
STREAM-Kopf stream-abwärts von einem Modul "markiert"
ist. Zumindest die folgenden Makros sind für die Ver-
wendung als Argument arg definiert:
ANYMARK Prüft, ob die Meldung markiert ist.
LASTMARK Prüft, ob es sich um die letzte mar-
kierte Meldung in der Warteschlange han-
delt.
ICKBAND Prüft, ob die Meldung eines bestimmten Prioritätsbe-
reichs in der Warteschlange für den STREAM-Kopf vor-
liegt.
IGETBAND Gibt den Prioritätsbereich der ersten Meldung in der
Warteschlange für den STREAM-Kopf zurück.
ICANPUT Prüft, ob für einen bestimmten Bereich Schreibzugriff
gilt.
ISETCLTIME Hiermit kann der Prozeß die Zeit einstellen, die der
STREAM-Kopf warten soll, wenn ein STREAM geschlossen
wird und in der Schreibwarteschlange noch Daten ent-
halten sind.
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
stropts(5) stropts(5)
IGETCLTIME Gibt die Wartezeit beim Schließen zurück.
ILINK Verbindet zwei STREAMs.
IUNLINK Unterbricht die Verbindung zweier STREAMs. Die
Include-Datei definiert zumindest folgende Werte für
all:
MUXIDALL Hebt die Verbindung aller STREAMs auf,
die mit dem fd zugeordneten STREAM ver-
bunden sind.
IPLINK Verbindet zwei STREAMs mit einem permanenten Link.
IPUNLINK Unterbricht die Verbindung der beiden STREAMs, die
mit einem permanenten Link verbunden wurden.
Folgende Makros sind für getmsg(), getpmsg(), putmsg() und putpmsg()
definiert:
MSGANY Jede Meldung empfangen.
MSGBAND Meldung aus einem bestimmten Bereich empfangen.
MSGHIPRI Meldungen hoher Priorität senden/empfangen.
MORECTL Weitere Steuerinformationen verbleiben in der Mel-
dung.
MOREDATA Weitere Daten verbleiben in der Meldung.
Die Include-Datei <stropts.h> kann alle Symbole aus <unistd.h> anzei-
gen.
Die Include-Datei <stropts.h> enthält folgende Funktionsprototypen,
die auch als Makros definiert sein können:
int isastream(int fildes);
int getmsg(int fd, struct strbuf *ctlptr, struct strbuf *dataptr,
int *flagsp);
int getpmsg(int fd, struct strbuf *ctlptr, struct strbuf *dataptr,
int *bandp, int *flagsp);
int ioctl(int fildes, int request, ... );
int putmsg(int fd, const struct strbuf *ctlptr,
const struct strbuf *dataptr, int flags);
int putpmsg(int fd, const struct strbuf *ctlptr,
const struct strbuf *dataptr, int band, int flags);
int fattach(int fildes, const char *path);
int fdetach(const char *path);
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
stropts(5) stropts(5)
SIEHE AUCH
close(2), fcntl(2), getmsg(2), ioctl(2), open(2), pipe(2), poll(2),
putmsg(2), read(2), signal(2), write(2).
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98