проблема с именами python named

Я пытаюсь установить двухстороннюю связь между демоном и клиентом с использованием именованных каналов. Код висит при попытке открыть именованный канал, используемый для ввода Почему?

class comm(threading.Thread): def __init__(self): self.srvoutf = './tmp/serverout' self.srvinf = './tmp/serverin' if os.path.exists(self.srvoutf): self.pipein = open(self.srvoutf, 'r') #-----------------------------------------------------Hangs here else: os.mkfifo(self.srvoutf) self.pipein = open(self.srvoutf, 'r') #-----------------------------------------------------or here if os.path.exists(self.srvinf): self.pipeout = os.open(self.srvinf, os.O_WRONLY) else: os.mkfifo(self.srvinf) self.pipeout = os.open(self.srvinf, os.O_WRONLY) threading.Thread.__init__ ( self ) 

One Solution collect form web for “проблема с именами python named”

Из спецификации open () :

При открытии FIFO с установкой O_RDONLY или O_WRONLY:

Если O_NONBLOCK установлен, функция open () только для чтения должна возвращаться без задержки. Функция open () только для записи должна возвращать ошибку, если в текущем режиме файл не открыт для чтения.

Если O_NONBLOCK чист, open () только для чтения блокирует вызывающий поток, пока поток не откроет файл для записи. Функция open () только для записи блокирует вызывающий поток, пока поток не откроет файл для чтения.

Другими словами, когда вы открываете именованный канал для чтения, по умолчанию open будет блокироваться до тех пор, пока другая сторона канала не будет открыта для записи. Чтобы исправить это, используйте os.open() и передайте os.O_NONBLOCK на стороне чтения именованного канала.

  • Функции пута
  • Как округлить минуту объекта datetime python
  • Как отправить словарь в функцию, которая принимает ** kwargs?
  • подсчет длины слова в файле
  • ограничивать ввод только целым числом (сбой текста программы PYTHON)
  • Как узнать, создал ли ndb.Model.get_or_insert новый объект или получил существующий?
  • Можете ли вы использовать скрипт Google Apps с Python?
  • Прочитать файл в App Engine с помощью Python?
  • Python - лучший язык программирования в мире.