Ситуация такова: два процесса p1 и p2. p1 создает fifo1 и fifo2 и открывает их на чтение и запись, соответственно. p2 открывает fifo2 и fifo1 на чтение и запись. Проблема такая: p1 создал оба fifo. открывает fifo1 на чтение и "засыпает" на syscall open(), точнее ждет, пока кто-нибудь не откроет fifo1 на запись... p2 открыл fifo1 на запись. p1 открывает на запись fifo2 и опять "засыпает" на системном вызове open(). Можно ли сделать так, что бы p1 не "засыпал" на open()? А вот на вызовах read() и write() пусть ожидает записи-чтения в канал. fifo создавались так: mkfifo(FIFO_REQ_NAME, FIFO_MODE); где FIFO_MODE: #define FIFO_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) открывались так: infile = fopen(ifname, "r"); outfile = fopen(ofname, "w"); пробывал и так: int fd = open(ifname, O_RDONLY); и так: int fd = open(ifname, O_RDONLY|O_NDELAY); пробывал игнорировать сигнал SIGPIPE: signal (SIGPIPE, SIG_IGN); Может кто подскажет, как тут быть?
Ответ на:
комментарий
от kpanic
Ответ на:
комментарий
от samson_la
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум создание файла(mkfifo)+Qt (2012)
- Форум [FIFO] Запись в канал, из которого никто не читает (2010)
- Форум c++ Не могу открыть fifo-файл для чтения. (2006)
- Форум Проблема с записью в pipe (2019)
- Форум Чтение многомерного массива из отраженого файла (2011)
- Форум синхронизация pipe-ов через select? (2007)
- Форум Не блокируется pid-файл (2014)
- Форум проблемма с shared memory (2006)
- Форум FIFO... (2003)
- Форум FIFO. (2003)