Added fifo(4) by Martin Schmitt
authorJoey Schulze <joey@infodrom.org>
Sat, 20 Jan 2001 11:03:31 +0000 (11:03 +0000)
committerJoey Schulze <joey@infodrom.org>
Sat, 20 Jan 2001 11:03:31 +0000 (11:03 +0000)
man4/fifo.4 [new file with mode: 0644]

diff --git a/man4/fifo.4 b/man4/fifo.4
new file mode 100644 (file)
index 0000000..7978f74
--- /dev/null
@@ -0,0 +1,72 @@
+.\" This man page is Copyright (C) 1999 Claus Fischer.
+.\" Permission is granted to distribute possibly modified copies
+.\" of this page provided the header is included verbatim,
+.\" and in case of nontrivial modification author and date
+.\" of the modification is added to the header.
+.\" 
+.\" 990620 - page created - aeb@cwi.nl
+.\"
+.\" German translation by Martin Schmitt (martin@schmitt.li) 01/2001
+.\"
+.TH FIFO 4 "17 Jan 2001" "Linuxhandbuch" "Gerätedateien" 
+.SH BEZEICHNUNG
+fifo \- Spezialdatei, Named Pipe, "first-in first-out"
+.SH BESCHREIBUNG
+Ein FIFO, auch "Named Pipe" genannt, ist mit einer
+Pipe vergleichbar.  Er wird jedoch im Unterschied zur Pipe
+nicht direkt zum Austausch zwischen Programmen verwendet, 
+sondern ist als Eintrag im Dateisystem sichtbar.
+.PP
+Auf den FIFO kann von mehreren Prozessen lesend oder
+schreibend zugegriffen werden.  Wenn die Prozesse über den
+FIFO Daten austauschen, werden die Daten vom Kernel intern
+weitergegeben, ohne tatsächlich im Dateisystem gespeichert
+zu werden. Der FIFO hält als Datei somit keine Daten.
+Der Eintrag im Dateisystem dient als 
+.IR "benannter Bezugspunkt"
+(daher Named Pipe), auf den Prozesse zugreifen können.
+.PP
+Der Kernel verwaltet genau ein Pipe-Objekt für jeden FIFO, 
+der von wenigstens einem Prozeß zum Lesen oder Schreiben 
+geöffnet ist.  Damit Daten durch den FIFO transportiert 
+werden können, muß der FIFO von beiden Enden geöffnet sein,
+einmal lesend und einmal schreibend.  Im Normalfall wird 
+die Verarbeitung nach dem Öffnen des FIFO so lange 
+blockiert, bis auch das andere Ende geöffnet ist.
+.PP
+Ein FIFO kann vom Prozeß auch non-blocking geöffnet werden.
+Das Öffnen des FIFO zum Lesen funktioniert dann auch, wenn 
+er noch von keinem anderen Prozeß zum Schreiben geöffnet
+wurde.  Das Öffnen zum Schreiben bricht mit ENXIO (Datei oder 
+Adresse nicht gefunden) ab, wenn nicht bereits ein anderer 
+Prozeß den FIFO zum Lesen geöffnet hat.
+.PP
+Unter LINUX können FIFOs sowohl lesend als auch schreibend
+in beiden Modi, blocking und non-blocking, geöffnet werden.
+Gemäß POSIX ist dafür kein Verfahren definiert.  Dadurch kann 
+ein FIFO zum Schreiben geöffnet werden, ohne daß lesende Prozesse
+vorhanden sind.  Falls ein Prozeß beide Seiten eines FIFO öffnet, 
+um mit sich selbst zu kommunizieren, sollte darauf geachtet
+werden, daß es nicht zu Stockungen in der Kommunikation kommt.
+
+.SH ANMERKUNGEN
+Versucht ein Prozeß in einen FIFO zu schreiben, der nicht von
+anderer Seite zum Lesen geöffnet ist, erhält er vom Kernel das
+Signal SIGPIPE.
+
+FIFOs werden mit
+.BR mkfifo (3)
+angelegt
+und können mit
+.IR "ls -l" 
+oder
+.IR file
+identifiziert werden.
+.SH "SIEHE AUCH"
+.BR mkfifo (3),
+.BR mkfifo (1),
+.BR pipe (2),
+.BR socketpair (2),
+.BR open (2),
+.BR signal (2),
+.BR sigaction (2).