Удаление именованных каналов при закрытии - PullRequest
3 голосов
/ 14 июня 2011

Я использую именованный канал для связи между скриптом PHP и демоном C ++ в Linux. Демон сидит и смотрит канал, обрабатывая команды при вызове скрипта и генерируя их. Система представляет собой небольшое встроенное устройство, и на ней работают только веб-сервер и демон.

Должен ли я удалять именованный канал при закрытии программы или можно оставить его в файловой системе? Встроенное устройство часто отключается, поэтому даже если я правильно закрою его, когда оно выйдет, оно все равно останется в большинстве случаев. Собираюсь ли я в конечном итоге с неизвестными данными в канале, когда я открываю его, когда система перезагружается? Если так, я должен просто удалить это и переделывать это каждый перезапуск, или это излишество?

Ответы [ 2 ]

5 голосов
/ 14 июня 2011

Удалять FIFO аккуратно и аккуратно, но это не принципиально. В частности, FIFO будет пустым при перезапуске системы.

Итак, лучше всего спроектировать свои программы так, чтобы они принимали присутствие FIFO и создавали его, если он отсутствует. Если они аккуратно закрыты, тогда удаление FIFO - это хорошо.

0 голосов
/ 14 июня 2011

Я не использовал их годами, но примерно на 80% уверен, что вы можете оставить узлы на месте навсегда.И они будут пустыми при загрузке, потому что данные хранятся в структурах данных ядра.

...