1

mkfifoPython では、次のようにして fifo (Linuxコマンドで作成) で着信データをポーリングできます。

reader = open(known_fifo_name,"r")
while True:
   data = reader.read(1)
   if data:
      process(data)
   else:
      time.sleep(0.1) #no data now, try later

ただし、データがない場合と、FIFO が削除された場合 (呼び出しread()による外部プログラムによって) の両方で、空の文字列が返されます。 聞いている fifo が存在しないことを確認する方法はありますか? remove()

4

1 に答える 1

2

次のことができます。

import os
try:
    os.stat(reader.fileno())
except OSError:
    # The FIFO has gone away
sleep(0.1)  # Wait for some more input
于 2013-08-01T21:10:05.103 に答える