как предотвратить fopen () от зависания при открытии именованного канала в PHP

У меня есть именованный файл pipe, который выглядит так:

prw-r--r-- 1 root root 0 Aug 11 17:01 /tmp/debug 

Когда я делаю что-то подобное в PHP:

 $fp = fopen("/tmp/debug", "r"); 

Он зависает (т.е. никогда не возвращается). Есть ли способ вернуть этот вызов и / или таймаут?

(редактировать)

Обратите внимание: я хочу, чтобы один процесс открыл этот канал с разрешениями на запись, а другой процесс открыл канал с разрешениями на чтение. Кто-то пишет эту трубку, а кто-то читает из этого канала. Проблема в том, что читатель иногда висит на fopen () – который я всегда хочу вернуть, был ли он успешным или нет.

Related of "как предотвратить fopen () от зависания при открытии именованного канала в PHP"

http://php.net/manual/en/function.stream-set-timeout.php

Обратите внимание:

Примечание. Для переносимости настоятельно рекомендуется всегда использовать флаг «b» при открытии файлов с помощью функции fopen ().

Может быть, это поможет.

Кроме того, прочитайте это сообщение Как использовать именованные каналы в PHP между различными функциями или даже разными процессами без fork?