Thread Fortschrittsanzeige und Prozessabbruch: GUI mit pipe und fork
(4 answers)
Opened by rudolf at 2007-05-21 13:06
[quote=murphy,21.05.2007, 13:39]
Dieser Teil des Codes ergibt wenig Sinn. Autoflush auf STDOUT zu aktivieren hat für den Aufruf von CORE::exit keinerlei Effekt. Und falls der Aufruf von exec erfolgreich ist, hat es natürlich erst recht keinen Effekt, denn in dem Falle sind der gesamte Perlinterpreter und das laufende Skript aus dem Speicher des aktuellen Prozesses verschwunden und wurden durch das auszuführende Programm ersetzt.[/quote] Da hast du wohl recht. Ich habe den Code aus verschiedenen Quellen zusammengetragen. Das CORE::exit wurde glaube ich empfohlen um die Prozesstabelle sauber zu halten, aber wahrscheinlich nicht zusammen mit exec(). Schaden dürften die Befehle aber wohl nicht. [quote=murphy,21.05.2007, 13:39]Stattdessen solltest Du vielleicht entweder eine Kommandozeilenoption von aria2c suchen, die die Ausgabe modifiziert, oder vor dem Einlesen der Ausgabe das Eingabedatensatztrennzeichen modifizieren (local $/ = "\r" könnte hier helfen).[/quote] Eine Kommandozeilenoption gibt es (noch) nicht. Mit der local-Anweisung funktioniert es wunderbar. Vielen Dank für den Hinweis. [quote=murphy,21.05.2007, 13:39]Um nicht nur STDOUT oder STDIN bei einem Kindprozess umzuleiten gibt es die Standardmodule IPC::Open2 und IPC::Open3.[/quote] Das muss ich mir mal näher anschauen. Danke. |