Использование MMAP с PWRITE вместеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Использование MMAP с PWRITE вместе

Сообщение Anonymous »

Предположим, что приложение C/C ++ Linux имеет файл журнала фиксированного размера и два потока, которые управляют этим файлом журнала: Производитель и потребитель . Производитель Поток создает большие части данных, которые должны сохраняться в файле журнала в качестве смежного блока. Потребитель Поток считывает данные случайным образом из этого файла журнала (пока данные из файла журнала не перемещаются в некоторое долгосрочное хранилище).

Я хочу использовать pwrite и fsync для записи данных в журнале «Производитель» , потому что, согласно многочисленным источникам, это вполне общепринято для ведения военнослужащего. Но в то же время я хочу сделать потребитель поток считывать файл журнала через MMAP , поскольку данные читаются случайным образом, и я хочу ускорить чтения через Madvise .

Вопрос: ли операционная система (Linux, OS x или любая другая, соответствующая OS). Будет автоматически обновляться или, по крайней мере, недействительно, когда производитель поток обновляет соответствующий блок в файле журнала через pwrite ? Если нет, что я должен сделать, чтобы потребитель поток увидел обновленные данные сразу после обновления?

Подробнее здесь: https://stackoverflow.com/questions/274 ... e-together
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»