Как прочитать именованный канал (FIFO), что в Linux с использованием Java - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть проблема, когда я должен читать потоковые данные из канала, в который приложение, написанное на C, записывает данные.другое приложение, написанное на Java, должно читать из этого канала Linux.Эта Java-программа является многопоточной программой для чтения данных из этого канала, когда другая программа записывает данные в нее.И это должно быть постоянное чтение из канала, поскольку данные добавляются в очередь канала.Любые предложения будут полезны.

Проблема, которую пытаются решить:

В настоящее время одно приложение (в C) создает файлы в режиме реального времени непрерывно в каталог, а другое приложение(в Java) читать и обрабатывать эти файлы.в этом подходе есть некоторая задержка из-за записи и чтения из файлов из разных каталогов, и использование Hoop Linux может помочь уменьшить эту задержку.Есть ли другой лучший подход для обработки непрерывных больших объемов данных?

Я гуглил несколько примеров для этого, чтобы прочитать fifo с помощью многопоточной Java-программы.Я не смог найти подходящих примеров. Пожалуйста, поделитесь, если вы сталкивались с такими.

1 Ответ

0 голосов
/ 26 сентября 2018

Если вы создадите файл FIFO, вы на самом деле не будете записывать на диск, это будет просто файл в файловой системе, чтобы облегчить доступ к нему.Вы можете прочитать об этом на страницах man руководства fifo (7) (man 7 fifo) для получения информации о FIFO и mkfifo (1) (man 1 mkfifo) для команды сделать их в C.

...