У меня есть большой файл данных, который постоянно (и синхронно) добавляется измерительными устройствами в полевых условиях. Мне нужно изохронно доставлять самые последние данные в этот файл на онлайн-панель. Я говорю изохронно, потому что «приборная панель» не заботится о отображении потока данных (ситуация с высокой задержкой), она просто заботится о самых последних точках данных в файле, которые ему отправляют. Я не могу гарантировать, что скорость роста файлов меньше, чем моя эффективная исходящая пропускная способность.
Итак, у меня есть один постоянно добавляемый файл, но у меня есть несколько процессов, которым необходимо регулярно отправлять из него самый последний блок информации. Думаю, что-то вроде свободного паба.
Я могу:
- Опросить файл, чтобы увидеть, есть ли рост, затем выполнить поиск в EOF для последнего блока (ов) данных,
- select () - стиль и получение уведомлений об упомянутых изменениях, но тогда мне все равно придется искать последний бит данных?
- Пусть процесс поместит последний бит данных в разделяемую память для чтения, но у меня не возникнет той же проблемы, которую мне нужно решить в # 1 и # 2, потому что программа записи в разделяемой памяти будет вести себя одинаково.
Любые другие предложения или рекомендации?