вопрос по библиотеке SD
- Войдите на сайт для отправки комментариев
Сб, 11/05/2019 - 00:41
Кратко
такое ощущение, что seek влияет только на read, а write всегда происходит в конец файла
Кратко
такое ощущение, что seek влияет только на read, а write всегда происходит в конец файла
ДОброго времени суток Уважаемые коллеги, не сочтите за труд посмотреть...
написал такой вот проверочный код
результат его работы
то есть независимо от указанного в 41 строке .seek(0) , оно в 45 строке пишет буфер в конец файла
, а мне хочется писать в произвольную позицию
или я гдетто недопонимаю ?
такое ощущение, что seek влияет только на read, а write всегда происходит в конец файла
Так и должно быть.
seek меняет только позицию чтения, а позиция записи от seek() не зависит. Позиция записи зависит от режима. В APPEND и WRITE запись всегда идет в конец файла, в TRUNCATE - в начало. Чтобы писать в произвольное место файла. надо открывать файл не во WRITE, а в режиме Read-Write
Ага, значит мои подозрения небеспочвенны :)
На режим read-write не нашел ничего, в кейвордс также только read и write
также не удается указать в опен READ_WRITE
Где бы почитать более полное описание библиотеки?
А не найдется ли у Вас примера кода, пишущего в произвольное место?
или ссылки на оный...
http://www.c-cpp.ru/content/open-rtlopen
Примеры использования есть тут - только кода много. Смотрите Fileserver.ino
https://github.com/stardot/ArduinoFilestore/tree/master/EconetServer
Пока смотрел и искал Вы ответили :) а я уже пишу
И все равно спасибо.
сработало!
в 39 строке указал вместо FILE_WRITE O_RDWR, подсмотренное в SdFat.h в 61 строке.
Весь остальной код неизменный.
результат