File: fifo.4

package info (click to toggle)
manpages-de 0.4-8
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 3,808 kB
  • ctags: 4
  • sloc: sh: 7,666; makefile: 60
file content (72 lines) | stat: -rw-r--r-- 2,761 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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" "Gertedateien" 
.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 tatschlich im Dateisystem gespeichert
zu werden. Der FIFO hlt als Datei somit keine Daten.
Der Eintrag im Dateisystem dient als 
.IR "benannter Bezugspunkt"
(daher Named Pipe), auf den Prozesse zugreifen knnen.
.PP
Der Kernel verwaltet genau ein Pipe-Objekt fr jeden FIFO, 
der von wenigstens einem Proze zum Lesen oder Schreiben 
geffnet ist.  Damit Daten durch den FIFO transportiert 
werden knnen, mu der FIFO von beiden Enden geffnet sein,
einmal lesend und einmal schreibend.  Im Normalfall wird 
die Verarbeitung nach dem ffnen des FIFO so lange 
blockiert, bis auch das andere Ende geffnet ist.
.PP
Ein FIFO kann vom Proze auch non-blocking geffnet werden.
Das ffnen des FIFO zum Lesen funktioniert dann auch, wenn 
er noch von keinem anderen Proze zum Schreiben geffnet
wurde.  Das ffnen zum Schreiben bricht mit ENXIO (Datei oder 
Adresse nicht gefunden) ab, wenn nicht bereits ein anderer 
Proze den FIFO zum Lesen geffnet hat.
.PP
Unter LINUX knnen FIFOs sowohl lesend als auch schreibend
in beiden Modi, blocking und non-blocking, geffnet werden.
Gem POSIX ist dafr kein Verfahren definiert.  Dadurch kann 
ein FIFO zum Schreiben geffnet 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 geffnet ist, erhlt er vom Kernel das
Signal SIGPIPE.

FIFOs werden mit
.BR mkfifo (3)
angelegt
und knnen 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).