new_pipe = os.open(pipe_path, os.O_RDONLY | os.O_NONBLOCK) # pipe_path points to a FIFO
data = os.read(new_pipe, 1024)
La lettura solleva di tanto in tanto errno -11: Risorsa temporaneamente non disponibile.
Quando viene generato questo errore? Sembra molto raro, poiché i casi comuni restituiscono i dati:
- Se nessuno scrittore ha la pipe aperta, viene restituito lo str vuoto ('').
- Se lo scrittore ha il tubo aperto, ma non vi sono dati nel FIFO, vuota str ('') è anche tornato
- E, naturalmente, se lo scrittore mette i dati nel FIFO, che i dati verranno letti.
possibile duplicato di [sendto: Risorsa temporaneamente non disponibile (errno 11)] (http://stackoverflow.com/questions/5737493/ sendto-resource-temporary-unavailable-errno-11) – agf
@agf: l'altra domanda riguarda un errore sendto, che si verifica perché il buffer di invio è pieno. La connessione a questa particolare domanda è discutibile nella migliore delle ipotesi, visto che stiamo parlando di leggere i pipe Unix qui –
@NiklasB. La domanda certamente non è simile, ma la risposta è. Il voto di chiudere come duplicato era solo un modo conveniente per collegarsi all'altra domanda. e collegalo nella parte superiore della barra laterale. – agf