Domanda

Sto cercando di usare una torsione per controllare la comunicazione attraverso i tubi Linux (os.pipe ()) e FIFO (os.mkfifo ()) fra un processo master e un insieme di processi di schiavi. Mentre sono tat positivo è possibile utilizzare contorta per questi tipi di descrittori di file (dopo tutto, contorto è grande per i socket TCP che * nix astrae come descrittori di file), non riesco a trovare alcun esempio di questo tipo di utilizzo. Qualcuno ha qualche link, codice di esempio, o consigli?

È stato utile?

Soluzione

Non ha nulla incorporato per I / O asincrono. Qualcuno ha scritto un libaio involucro per esso, ma non è stato toccato per un lungo periodo di tempo, e non ho idea se funziona ancora.

Nel peggiore dei casi si potrebbe usare select per vedere se c'è qualcosa a disposizione per leggere, ma che non vi aiuterà con la scrittura.

Altri suggerimenti

È possibile utilizzare reactor.spawnProcess per impostare arbitrarie mappature dei descrittori di file tra un processo padre e un processo figlio esso genera. Ad esempio, per eseguire un programma e dargli due descrittori di uscita in più (oltre a stdin, stdout e stderr) con i quali può inviare byte indietro al processo principale, si dovrebbe fare qualcosa di simile:

reactor.spawnProcess(protocol, executable, args,
                     childFDs={0: 'w', 1: 'r', 2: 'r', 3: 'r', 4: 'r'})

Il reattore si prenderà cura di creare le tubazioni per voi, e chiamerà childDataReceived sul ProcessProtocol si passa quando vengono letti da loro. Vedere la spawnProcess documentazione API per i dettagli.

Se si sta utilizzando anche intrecciato sul lato bambino, allora si vuole essere principalmente guardando twisted.internet.stdio. stdiodemo.py e stdin.py negli vi mostrerà come a utilizzare tale modulo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top