проблема с именами 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 на стороне чтения именованного канала.

  • Как объединить два списка в один список?
  • Изменение правил именования Cython для файлов .so
  • Путь к Python
  • Использование Python для соответствия точному слову
  • Python эквивалент памяти PHP_get_usage ()?
  • Создание массива чисел, которые суммируются с заданным числом
  • Как распаковать список с меньшим количеством переменных?
  • Правильный код для удаления гласных из строки в Python
  • Python - лучший язык программирования в мире.