Moin,
* Ralph Müller
Mich würde mal interessieren wie dieser Pipe-Mechanismus "intern" aussieht. Legt der Kernel bei _jeder_ Pipe-Datenübergabe zwischen zwei Programmen (für den Benutzer unmerkbar) kurzzeitig eine temporäre "Zwischendatei" an, oder läuft das nur im RAM ab? Das läuft nur im RAM ab. Der eine Prozess schreibt in die Pipe, der andere liest daraus. Da wird im Kernelspeicher vermutlich erwas gepuffert, der Rest spielt sich aber in den beiden Prozessen ab.
Wenn sehr viele Daten von einem zum nächsten Programm übergeben werden dann müßte dem Kernel doch eigentlich gar nichts anderes übrig bleiben als mal kurz eine temporäre "Zwischendatei" anzulegen? Schließlich ist auch der größte Arbeitsspeicher irgendwann mal "aufgebraucht". Oder? Aber macht er das auch bei wenig Daten? Das ist nicht nötig, weil die Daten 'sofort' vom zweiten Prozess verbraucht werden.
Hintergrund meiner Frage ist ein Laufzeitproblem eines Bash-Skripts, und die Überlegung ob eine Datenübergabe per Pipes vielleicht schneller geht als per temporärer "Zwischendateien" auf einer Ramdisk. Davon würde ich ausgehen.
Thorsten -- Fear leads to anger. Anger leads to hate. Hate leads to using Windows NT for mission-critical applications.