Python именованные каналы в Linux. Как читать и записывать?

ОС: CentOS 7
Python: 2.4.

Создал в Linux именованный канал, средствами самой ос через:
mkfifo
. Пытаюсь открыть его на чтение таким образом:
pipe = open("testpipe","r")
Но программа просто зависает на этой команде. Не вылетает по исключению, а замирает, прерывание по
ctrl + c
работает, так, собственно, и завершаю ее работу.

В чем может быть проблема и как с ней бороться?
  • Вопрос задан
  • 3460 просмотров
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Возможно это и не проблема.
Вы же работаете с именованным каналом. Если вы его читаете, программа не зависает, а ждет, пока кто-то что-то в этот канал напишет.
Ответ написан
@CycaHuH
В чем может быть проблема

Вызов open ждет пока в fifo что-нибудь запишут.

как с ней бороться?

Можно использовать os.open с флагом O_NONBLOCK
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы