<< Dot-Ersatz
>> Shellpipe

Der Queue-Handler PIPE:

In AmigaOS 2.04 wurde ein neuer Handler eingef�hrt, der es erlaubt, Daten zwischen verschiedenen Programmen auszutauschen. Dieser Handler hei�t `L:Queue-Handler', ist aber besser als `PIPE:' bekannt.

`PIPE:' implementiert eine echte, Unix-artige Pipe, mit der man die Standardausgabe eines Programms als Standardeingabe eines anderen Programms verwenden kann. Es ist auch m�glich, mehrere Programme �ber mehrere Pipes gleichzeitig zu verketten. Pipes brauchen weniger RAM f�r tempor�re Dateien, und der Zugriff ist schneller.

Allerdings unterscheidet sich `PIPE:' von Unix-Pipes in zwei wesentlichen Punkten:

  1. Es handelt sich um ein Device; die Ein- und Ausgabe von Programmen mu� also nicht unbedingt eine Datei sein, obwohl das meistens der Fall ist. Man kann auch `PIPE:' wie andere Devices verwenden, aber nat�rlich weder Directories lesen noch Seek-artige Zugriffe durchf�hren.
  2. Es gibt keine Flush-Operation. Wenn nicht alle Daten gelesen wurden, die in `PIPE:' geschrieben wurden, dann bleiben sie stehen, bis sie evtl. von einem anderen Programm gelesen werden. Man mu� also Pipes immer leeren, bevor man sie schlie�t.
  3. Aus demselben Grund kann ein Programm blockiert werden, wenn es die interne Puffergr��e �berschreibt. Auch dies wird durch rechtzeitiges Leeren der Pipe vermieden.

Der Handlername von PIPE: ist vollst�ndig `PIPE:name/bufsize/bufnum', wobei `name' den verwendeten Pipekanal identifiziert und eindeutig sein sollte. Durch verschiedene Namen kann man also gleichzeitig mehrere Pipe-Kan�le �ffnen. Die optionalen Argumente bufsize und bufnum geben die Gr��e und Anzahl der verwendeten Datenpuffer an. Meist schreibt man einfach `PIPE:name', die Vorgabegr��e ist dann 4096 Bytes und die Anzahl unbegrenzt.

Osma Ahvenlampi (Osma.Ahvenlampi@hut.fi)



<< Dot-Ersatz >> Shellpipe