Как использовать постоянный именованный канал под Linux? - PullRequest
1 голос
/ 19 августа 2011

Использовать именованный канал иногда очень удобно, например, mkfifo file.fifo.

, но файл.fifo не является постоянным, если компьютер перезагружается или происходит сбой процесса записи, я ничего не могу получить из канала.Итак, есть ли какие-либо методы, позволяющие хранить данные по трубопроводу на диске, а не в памяти?

спасибо.

1 Ответ

2 голосов
/ 19 августа 2011

Самое простое решение - использовать простые файлы для хранения данных.Например, и использовать канал (или аналогичный) для уведомления, например, о появлении новых данных.Конечно, вы должны позаботиться о межпроцессной блокировке.

Или вы можете использовать «очереди сообщений» (см. mqueue.h ).Они являются постоянными в случае сбоя процесса, но не при перезагрузке системы.

Или вы можете использовать стороннюю библиотеку, которая реализует «постоянные очереди сообщений».Смотрите этот похожий вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...