Не уверен, что это подходящее место для этого вопроса, но здесь ...
У меня есть приложение, которое записывает файл журнала. Теперь мне нужно запустить его в системе, у которой есть только флеш-память: встроенная MMC и micro SD. И у этого аппарата высокая вероятность неожиданного отключения питания (это не планировалось при создании приложения). Таким образом, в лучшем случае файл журнала можно обрезать, в худшем - весь том может быть поврежден. Записи журнала создаются с переменной скоростью, иногда несколько раз в секунду.
Вопрос в том, если я просто вызываю сброс файла (и синхронизацию) после записи каждой записи журнала - приведет ли это к чрезмерному износу флешки? Оптимизирует ли внутренний контроллер SD / MMC запись при добавлении небольших фрагментов данных, чтобы использовать существующее пространство в текущем секторе (?), Или он будет выделять новый блок для каждой записи? Если последнее верно, то SD / MMC вообще не подходит для файлов логов?
Связанный вопрос (или такой же, перефразированный): если вы добавляете строки в файл одну за другой (открываете файл в режиме добавления, записи, закрытия), будет ли повторно использован последний физический блок, если он не заполнен? или последний блок будет перераспределен и в него скопированы предыдущие данные?