"Diez B. Roggisch" <deets@web.de> writes:On Sep 21, 2012, at 12:07 PM, Olе Streicher wrote:wie kann man in Python einen Fifo mit einem temporären Namen erzeugen?os.mkfifo() möchte ja einen expliziten Dateinamentempfile.mkstemp() produziert nur eine reguläre Datei, und diese einfachzu löschen und dann als Pipe neu anzulegen hört sich unsicher an (raceconditions).Wieso? Ist doch ein zufälliger Name, und wenn du willst, kannst du zBgemeinsame Suffixe verwenden, und alle abräumen, die nicht mehr gültigsind.
Nö; es könnte z.B. sein, dass zufällig ein anderes Programm zwischen dem
Löschen und dem Neuanlegen den gleichen Dateinamen anlegt. Nicht umsonst
wird bei mkstemp() ein gewisser Aufwand für die Transaktionssicherheit
getrieben.
Und jetzt warte ich auf deine ganzen "Ja, Abers"… denn noch wissen wirja nix über deinen wirklichen Anwendungsfall, und ich hab's da imUrin, das der Ober-spezial ist...
Ich habe eine Bibliothek, die eine Logdatei (mit einstellbarem Namen)
schreibt -- als Datei. Was in diese Datei geschrieben wird, möchte ich
aber gerne direkt in einen kleinen Server füttern (ohne dass etwas auf
die Platte geschrieben wird), der daraus seinerseits schöne
Python-logging-events macht. Dazu muss ich dieser Bibliothek die
Logdatei als Fifo unterjubeln. Weil der eigentliche Dateiname dann
irrelevant ist (und das Programm natürlich auch mehrfach laufen soll),
eben als temporären Dateinamen.
Ich finde das eher eine Alltagsaufgabe denn als Ober-spezial.