Temporäres Fifo erzeugen

Liebe Gruppe, hallo Liste,
wie kann man in Python einen Fifo mit einem temporären Namen erzeugen?
os.mkfifo() möchte ja einen expliziten Dateinamen
tempfile.mkstemp() produziert nur eine reguläre Datei, und diese einfach zu löschen und dann als Pipe neu anzulegen hört sich unsicher an (race conditions).
Irgendwie stehe ich da auf dem Schlauch.
Viele Grüße
Ole

On Sep 21, 2012, at 12:07 PM, Olе Streicher wrote:
Liebe Gruppe, hallo Liste,
wie kann man in Python einen Fifo mit einem temporären Namen erzeugen?
os.mkfifo() möchte ja einen expliziten Dateinamen
tempfile.mkstemp() produziert nur eine reguläre Datei, und diese einfach zu löschen und dann als Pipe neu anzulegen hört sich unsicher an (race conditions).
Wieso? Ist doch ein zufälliger Name, und wenn du willst, kannst du zB gemeinsame Suffixe verwenden, und alle abräumen, die nicht mehr gültig sind.
Oder du benutzt sockets. Oder ZeroMQ.
Und jetzt warte ich auf deine ganzen "Ja, Abers"… denn noch wissen wir ja nix über deinen wirklichen Anwendungsfall, und ich hab's da im Urin, das der Ober-spezial ist...
Diez

Olе Streicher [09/21/2012 12:07 PM]:
wie kann man in Python einen Fifo mit einem temporären Namen erzeugen?
os.mkfifo() möchte ja einen expliziten Dateinamen
tempfile.mkstemp() produziert nur eine reguläre Datei, und diese einfach zu löschen und dann als Pipe neu anzulegen hört sich unsicher an (race conditions).
Erzeugung des Dateinamens unabhängig von der Erzeugung der Datei (oder des FIFO) dürfte ohne Race Condition überhaupt nicht gehen.
Pragmatischer Vorschlag: Leg doch einfach mit tempfile.mkdtemp() ein temporäres Verzeichnis an, in dem du dann den FIFO ganz normal mit os.mkfifo() erzeugst. Der Name des FIFOs innerhalb dieses Verzeichnisses ist dann egal. Das Verzeichnis kannst du bei Bedarf für weitere temporäre Dateien (oder FIFOs...) verwenden.
J.
participants (3)
-
Diez B. Roggisch
-
Joachim Saul
-
ole-usenet-spam@gmx.net