Wenn Sie zwei Prozesse - Eltern und Kind - mit einer Pipe verbinden, erstellen Sie die Pipe vor dem Fork.
Der Fork sorgt dafür, dass beide Prozesse Zugriff auf beide Enden der Pipe haben. Dies ist nicht wünschenswert.
Die Leseseite soll lernen, dass der Schreiber fertig ist, wenn sie einen EOF-Zustand feststellt. Dies kann nur passieren, wenn alle Schreibseiten geschlossen sind. Daher ist es am besten, wenn es seine Schreib-FD so schnell wie möglich schließt.
Der Schreiber sollte seine Lese-FD schließen, nur um nicht zu viele FDs offen zu haben und damit möglicherweise eine Grenze der offenen FDs zu erreichen. Außerdem wird der Schreiber benachrichtigt, wenn der einzige Leser stirbt, indem er ein SIGPIPE oder zumindest einen EPIPE-Fehler erhält (abhängig davon, wie Signale definiert sind). Wenn es mehrere Leser gibt, kann der Schreiber nicht erkennen, dass "der echte" Leser weggegangen ist, schreibt weiter und bleibt stecken, da die Schreib-FD blockiert ist in der Hoffnung, dass der "ungeniutzte" Leser etwas lesen wird.
Hier wird im Detail beschrieben, was passiert: