Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/20: Рейтинг темы: голосов - 20, средняя оценка - 4.65
2 / 2 / 0
Регистрация: 06.11.2016
Сообщений: 1

FatFS правильно дописывать файлы

21.04.2016, 07:45. Показов 3796. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех! Спрошу в этой теме так как проект на stm32 но я так понимаю вопрос более общий. Пишу файлы на SD карту. В этих файлах данные при считывании через USORT. Все работает вопрос встал в другом. Есть некоторые приборы с которых нужно считывать данные и писать в файлы *.bin на SD карте. Приборов может быть много каждый со своим номеров следовательно под каждый номер создается свой файл на карте. Как правильно дописывать данные с одного и того же прибора те в один и тот же файл чтобы данные не вылазили за границу вернее чтобы при дописывании уже открытого файла я вдруг не попадал на сектор где лежит уже другой файл и портил его. Размер этих файлов может сильно увеличиваться (от 30 кВ до нескольких мегабайт при многократном дописывании ). В библиотеке FatFS c маху не нашел каких то функций или указаний на этот счет. Подскажите пожалуйста кто решал подобную проблему.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2016, 07:45
Ответы с готовыми решениями:

[РЕШЕНО] Как дописывать строки в файл в FatFS?
устройство на Stm32 использую fatfs чена. Если использую f_puts добавляется строка, но то что было в файле удаляется копировать все что...

Листать файлы с помощью FatFs
Ребята привет. Итак имеется большая флешка с музыкой(16 Gb, формат WAV, длинные имена, сложная система папок), на микроконтроллере...

Как правильно архивировать и разархивировать файлы на хостинге, чтобы не терялись файлы?
Подскажите как правильно архивировать и разархивировать файлы на хостинге, чтобы не терялись файлы? Я делаю так: делаю zip или tar архив...

4
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
21.04.2016, 12:33
По-моему, открываете его на допись - FA_OPEN_EXISTING | FA_WRITE | FA_READ, если не ошибаюсь и пишете. Всё остальное - забота FatFs. Если сглючит - японец накосячил :).
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
21.04.2016, 12:55
При работе с FAT вы никак не сможете увеличивая размер одного файла, залезть в область другого. Это если с флешкой общаться без файловой системы тогда такой косяк возможен. Спокойно дописывайте файл, остальные не повредятся.
0
2 / 2 / 0
Регистрация: 06.11.2016
Сообщений: 1
21.04.2016, 19:50
Спасибо за ответы. Будем надеяться что так оно и есть. Тогда правильно ли я понимаю что один файл может быть разбросан по разным секторам. Просто если бы файлы лежали на диске или флэшке одним массивом данных то при многократном увеличении размеров файлов они бы залазили как бы на массивы друг друга. А когда файл разбросан по "дыркам" между данными других файлов то при дописывании сама fat ищет на диске сектор или несколько секторов достаточного размера которые свободны и пишет туда файлы. Так?
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
21.04.2016, 19:53
Цитата Сообщение от pvo125
Так?
Совершенно верно. Именно так. Файлы лежат "подряд" крайне редко.
Почитайте на досуге, как FAT организована и работает.
Если бы Вы сами писали данные в сектора, вы должны были бы это разруливать. А так за Вас это делает FAT.
К слову то же самое делает любая файловая система на компе - FATxx, NTFS, HPFS, extXX и все остальные. Для этого они и придуманы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2016, 19:53
Помогаю со студенческими работами здесь

Дописывать данные в ячейку
При помощи edit или dbedit мне нужно дописывать данные в ячейку, т. е. я ввел данные в edit нажал на enter и данные в ячейке не...

Как дописывать файл
Всем привет. Подскажите пожалуйста, мне нужно переменную постоянно дописывать новой строкой в текстовый файл. Как это сделать? И еще...

Дописывать id в value при клике
Есть картинки и некоторые нужно удалить, для этого при клике по картинки id записывается в value скрытого поля. Но если я нажимаю на...

Как дописывать в файл?
# -*- coding: cp1251 -*- def fread(filename,ras): f = open(filename + '.' + ras , 'r') #Чтение файла print f.read() ...

LineEdit авто. дописывать символы
Люди добрые подскажите как сделать чтобы например после каждого третьего введенного символа в lineEdit автоматически добовлялась точка (...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru