Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ stropts(5) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

close(2)

fcntl(2)

getmsg(2)

ioctl(2)

open(2)

pipe(2)

poll(2)

putmsg(2)

read(2)

signal(2)

write(2)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026