Как воспроизвести потерю данных из-за неочистки буферов ядра?Linux

Ответить
Anonymous
 Как воспроизвести потерю данных из-за неочистки буферов ядра?

Сообщение Anonymous »

Недавно я столкнулся с проблемой в своей среде разработки Linux. Я написал функцию для экспорта результатов в файл Excel, запускаемую нажатием кнопки. После выполнения функции она очищает буфер пользовательского пространства и отображает диалоговое окно «успех». Однако если пользователь слишком быстро извлекает USB-накопитель, файл не сохраняется на нем, даже если появляется диалоговое окно.
Я понимаю, что это происходит, потому что данные все еще находятся в буфер ядра и не был записан на оборудование. Я решил проблему с помощью fsync.
Теперь я хочу систематически тестировать и воспроизводить эту проблему. Как лучше всего это сделать?
Я пробовал различные подходы, например, выполнение команды на отключение USB-накопителя сразу после завершения функции записи, а также другие действия. Я даже пытался сделать это вручную, но не смог воспроизвести проблему.
Я знаю, что эта проблема связана с буфером ядра, но не могу найти простой пример, чтобы воспроизвести ее. эффективно, что весьма расстраивает.

Подробнее здесь: https://stackoverflow.com/questions/793 ... el-buffers
Ответить

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

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

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

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

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