Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dial(3N) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

uucp(1)

alarm(2)

read(2)

write(2)

termio(7)

dial(3N)                                                           dial(3N)

NAME
     dial - Abgehende Terminalleitungsverbindung einrichten

SYNTAX
     cc [option ...] datei ... -lnsl [bibliothek ...]

     #include <dial.h>

     int dial(CALL call);

     void undial(int fd);

BESCHREIBUNG
     dial liefert einen Dateideskriptor für eine Terminalleitung zurück,
     die zum Lesen und Schreiben geöffnet ist. Das Argument von dial ist
     eine CALL-Struktur (definiert in der Include-Datei dial.h).

     Wenn das aufrufende Programm die Terminalleitung nicht mehr benötigt,
     muß es undial aufrufen, um das Semaphor freizugeben, das während der
     Einrichtung des Terminalgeräts gesetzt worden ist.

     Die Definition von CALL in der Include-Datei dial.h sieht folgenderma-
     ßen aus:

     typedef struct {
         struct termio *attr; /* Zeiger auf termio Attribut-struct */
         int     baud;        /* Datenübertragungsrate */
         int     speed;       /* 212A modem: niedrig=300, hoch=1200 */
         char    *line;       /* Gerätename für hinausgehende Leitung */
         char    *telno;      /* Zeiger auf tel-nummer Ziffernstring */
         int     modem;       /* Spezifik. der Modemkontrolle f. Direktleitg. */
         char    *device;     /* nicht verwendet */
         int     devlen;     /* nicht verwendet */
     } CALL;

     Das CALL-Attribut speed ist nur für einen hinausgehenden gewählten
     Ruf, das in diesem Falle entweder den Wert 300 oder 1200 besitzen
     sollte, um auf ein 113A Modem oder auf die höhere oder niedere
     Geschwindigkeit des 212A Modems hinzuweisen. Beachten Sie, daß das
     113A Modem oder die Belegung der niederen Geschwindigkeit des 212A
     Modems jede Rate zwischen 0 und 300 Bits pro Sekunde erlaubt. Die
     Belegung der höheren Geschwindigkeit des 212A Modems überträgt und
     empfängt jedoch nur mit einer Rate von 1200 Bits pro Sekunde. Das
     CALL-Attribut baud ist für die gewünschte Übertragungsrate in der Ein-
     heit Baud. Man könnte baud z. B. auf 110 und speed auf 300 (oder 1200)
     setzen. Wenn speed jedoch auf 1200 gesetzt ist, muß baud auf die hohe
     Geschwindigkeit (1200) gesetzt werden.

     Falls die gewünschte Terminalleitung eine Direktleitung ist, sollte
     der Zeiger auf ihren Gerätenamen in dem CALL-Attribut line stehen.
     Gültige Werte für solche Terminal-Gerätenamen stehen in der Datei
     Devices. In diesem Fall sollte der Wert von baud auf -1 gesetzt



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

dial(3N)                                                           dial(3N)

     werden. Dieser Wert wird dial veranlassen, daß es den richtigen Wert
     aus der Datei Devices ermittelt.

     Das Attribut telno ist ein Zeiger auf eine Zeichenkette, die die zu
     wählende Telefonnummer darstellt. Solche Nummern dürfen nur aus den
     folgenden Zeichen bestehen:

     0-9  wähle 0-9

     *    wähle *

     #    wähle #

     =    warte auf zweiten Wählton

     -    Verzögerung von ca. 4 Sekunden

     Das CALL-Attribut modem wird dafür verwendet, Modemkontrolle für
     Direktleitungen zu spezifizieren. Dieses Attribut sollte nicht Null
     sein, wenn Modemkontrolle gefordert ist. Das CALL-Attribut attr ist
     ein Zeiger auf eine termio-Struktur, wie sie in der Include-Datei
     termio.h definiert ist. Für diesen Zeiger darf der Wert NULL an dial
     übergeben werden. Wenn jedoch so eine Struktur verwendet wird, werden
     die Attribute, die in ihr enthalten sind, für die herausgehende Termi-
     nalleitung gesetzt, bevor die Verbindung eingerichtet wird. Dieses
     Setzen ist häufig wichtig für bestimmte Attribute, wie z. B. die Pari-
     tät und Baud-Rate.

     Die CALL-Attribute device und devlen werden nicht mehr verwendet. Sie
     bleiben aus Gründen der Kompatibilität in der CALL-Struktur.

DIAGNOSE
     Beim Auftritt eines Fehlers wird ein negativer Wert zurückgegeben, der
     den Grund des Fehlers angibt. Mnemotechnische Abkürzungen für diese
     negativen Werte, wie sie hier aufgelistet werden, sind in der
     Include-Datei dial.h definiert.

     INTRPT   -1    /* Unterbrechung aufgetreten */
     DHUNG   -2    /* Wähler hängt (keine Rückkehr vom Schreiben) */
     NOANS   -3    /* keine Antwort innerhalb von 10 Sekunden */
     ILLBD   -4    /* ungültige Baud-Rate */
     APROB   -5    /* acu Problem (open()-Fehler) */
     LPROB   -6    /* Leitungsproblem (open()-Fehler) */
     NOLdv   -7    /* kann Gerätedatei nicht öffnen */
     DVNTA  -8    /* angefordertes Gerät nicht verfügbar*/
     DVNTK  -9    /* angefordertes Gerät nicht bekannt */
     NOBDA  -10   /* kein Gerät für angeforderte Baud-Rate verfügbar */
     NOBDK  -11   /* kein Gerät für angeforderte Baud-Rate vorhanden */
     DVNTE  -12   /* angeforderte Geschw. nicht passend */
     BADSYS  -13   /* System ist nicht in Systemdatei */




Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

dial(3N)                                                           dial(3N)

HINWEISE
     Das Einbinden der Include-Datei dial.h hat ein automatisches Einbinden
     der Include-Datei termio.h zur Folge.

     Innerhalb des dial-Moduls wird ein alarm(2)-Systemaufruf mit 3600
     Sekunden durchgeführt (und abgefangen), um die LCK..-Datei zu aktuali-
     sieren und um das Geräte-Semaphor für das Terminalgerät einzurichten.
     Andernfalls kann uucp(1) den LCK..-Eintrag in ihrem Aktualisierungs-
     durchläufen, die alle 90 Minuten stattfinden, löschen. Der Alarm kann
     ablaufen, während der Benutzer sich in einem read(2)- oder write(2)-
     Systemaufruf befindet, was eine Fehlerrückgabe zur Folge hat. Falls
     der Benutzer damit rechnet, eine Stunde oder mehr damit zu verbringen,
     sollten Fehlerrückgaben von reads auf (errno==EINTR) überprüft und das
     read möglicherweise nochmals durchgeführt werden.

DATEIEN
     /etc/uucp/Devices

     /etc/uucp/Systems

     /var/spool/uucp/LCK..tty-Gerät

SIEHE AUCH
     uucp(1), alarm(2), read(2), write(2), termio(7).






























Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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