On 07.01.2004, at 07:11, Robert Barten wrote:
> Missverständnis: Das ist mir klar wie bereits im Backup-Beispiel
> erwähnt, nur startet der Prozess cat doch noch vor der Umleitung auf
> `bar'. Es ging immer ums Starten, und da sollte es doch sicher geordnet
> von links nacht rechts zugehen, selbst wenn es sich um
> Sekundenbruchteile handelt?
ich bin jetzt ehrlich gesagt zu faul um im Source nachzuschauen, aber
die Logik gebietet folgendes:
1. cat muss gestartet werden (evtl ein Builtin, aber egal)
2. sed muss gestartet werden
3. eine Pipe muss zwischen Prozess (1) in Richtung Prozess (2) erzeugt
werden. Das setzt nun also voraus, dass Prozess (2) bereits existiert,
sonst koennte man ja stdout nicht auf dessen stdin draufschrauben.
4. Die Ausgabeumleitung muss auch eingestellt werden. Das setzt
wiederum voraus, dass stdout von Prozess (2) bereits umgeleitet ist,
bevor dieser ausgefuehrt wird.
Es scheint also so, als ob die Umleitungen von rechts nach links
erzeugt werden? Wie sollte das dann ueberhaupt irgendwann einmal
funktionieren?
Nach meiner Erfahrung fork()t die Shell erst, und macht dann die
Umleitungen (IIRC). Und wie mein Scheduler jetzt will, darf als erstes
(Builtin) die Datei oeffnen und lesen, oder eben die zweite Seite der
Pipe darf als erstes die Datei abschnipseln.
Dann kann man noch mit Subshells und sleep && rm arbeiten, aber das
wird dann schon sehr experimentell...
gruesse
simon
-- /"\ http://corecode.ath.cx/#donate \ / \ ASCII Ribbon Campaign / \ Against HTML Mail and News
To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 07 Jan 2004 - 14:46:43 CET