Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ close(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

creat(2)

dup(2)

exec(2)

fcntl(2)

open(2)

pipe(2)

signal(2)

fattach(3C)

fdetach(3C)

unistd(4)

signal(5)

close(2)                                                           close(2)

NAME
     close - Dateideskriptor schließen

SYNTAX
     #include <unistd.h>

     int close (int fildes);

BESCHREIBUNG
     fildes ist ein Dateideskriptor, der von einem Systemaufruf creat(),
     open(), dup(), fcntl() oder pipe() geliefert wurde. close() schließt
     den durch fildes angegebenen Dateideskriptor. Alle ausstehenden Daten-
     satzsperren des Prozesses (in der von fildes angegebenen Datei) werden
     aufgehoben.

     Wenn alle der Beschreibung für die offene Datei zugeordneten Dateide-
     skriptoren geschlossen worden sind, wird die Beschreibung für diese
     Datei freigegeben.

     Der von der Datei belegte Speicherplatz wird freigegeben, wenn keine
     Links auf diese Datei vorhanden sind und alle der Datei zugeordneten
     Dateideskriptoren geschlossen wurden. Auf die Datei kann anschließend
     nicht mehr zugegriffen werden.

     Wenn ein STREAMS-Dateideskriptor fildes geschlossen wird und für den
     aufrufenden Prozeß vorher registriert wurde, daß ihm ein SIGPOLL-Sig-
     nal [siehe signal(2) und sigset(2)] bei Ereignissen in Zusammenhang
     mit diesem Stream [siehe ISETSIG in streamio(7)] gesendet wird, wird
     die Registrierung des aufrufenden Prozesses für Ereignisse in Zusam-
     menhang mit diesem Stream aufgehoben. Das letzte close() auf einen
     Stream bewirkt, daß der fildes zugeordnete Stream beseitigt wird. Wenn
     ONDELAY und ONONBLOCK nicht gesetzt sind und keine Signale für den
     Stream ausgeliefert wurden, und wenn in der Schreibwarteschlange des
     Moduls Daten stehen, wartet close() bis zu 15 Sekunden (für jedes
     Modul und jeden Treiber), damit in der Warteschlange stehende Daten
     vor Beseitigen des Streams ausgegeben werden können. Die Zeitverzöge-
     rung kann durch einen ioctl()-Aufruf mit dem Parameter ISETCLTIME
     geändert werden [siehe streamio(7)]. Wenn ONDELAY oder ONONBLOCK
     gesetzt wurde oder wenn Signale vorliegen, wartet close() nicht auf
     die Beendigung der Ausgabe und beseitigt den Stream sofort.

     Ist fildes einem Ende einer Pipe zugeordnet, so bewirkt der letzte
     close()-Aufruf, daß ein "Hangup" am anderen Ende der Pipe erzeugt
     wird. Wurde dem anderen Ende der Pipe ein Name zugewiesen [siehe
     fattach(3C)], so bewirkt der letzte close(), daß diese Zuweisung auf-
     gehoben wird [siehe fdetach(3C)]. Sollte am anderen Ende der Pipe kein
     Prozeß mehr vorhanden sein, und die Namenszuweisung aufgehoben wird,
     so wird der entsprechende Stream ebenfalls abgebaut.







Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

close(2)                                                           close(2)

     Wenn fildes auf die Master-Seite eines Pseudoterminals verweist, wird
     beim letzten close ein SIGHUP-Signal an die Prozeßgruppe (falls vor-
     handen) gesendet, für die die Slave-Seite des Pseudoterminals das
     Steuerterminal ist. Es ist nicht angegeben, ob durch das Schließen der
     Master-Seite des Pseudoterminals die gesamte anstehende Ein- und Aus-
     gabe gelöscht wird.

     Wenn fildes auf die Slave-Seite eines STREAMS-Pseudoterminals ver-
     weist, wird möglicherweise eine Meldung der Länge Null an die Master-
     Seite gesendet.

FEHLER
     Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
     Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
     errno(5).

     Die angegebene Datei wird geschlossen, außer wenn einer oder mehrere
     der nachstehenden Punkte zutreffen:

     EBADF     fildes ist kein gültiger offener Dateideskriptor.

     EINTR     Ein Signal wurde während des Systemaufrufs close() abgefan-
               gen.

     EIO       Beim Lesen vom Dateisystem oder Schreiben auf dieses trat
               ein Ein-/Ausgabefehler auf.

     ENOLINK   fildes ist auf einem fernen Rechner, und die Verbindung zu
               diesem Rechner ist nicht mehr aktiv.

ERGEBNIS
     Nach erfolgreicher Beendigung wird 0 zurückgegeben. Andernfalls wird
     -1 zurückgegeben, und errno wird zur Anzeige des Fehlers gesetzt.

SIEHE AUCH
     creat(2), dup(2), exec(2), fcntl(2), open(2), pipe(2), signal(2),
     fattach(3C), fdetach(3C), unistd(4), signal(5).

















Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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