Здравствуйте!
Пишу под андроид на низком уровне, т.е. c/c++. Не работает функция lseek. При вызове ошибок никаких не выдает, но результата тоже никакого. При этом аналогичная функция fseek работает, в чём может быть проблема?
п.с.1 присоединяется библиотека на c/c++ и там вызывается lseek в обёртке, поэтому просто использовать fseek не получается из-за разных аргументов.
п.с.2 такие функции как read/write/open/close работают.
Есть такая проблема. Связана она с обращением через хэндл, система возвращает пустые значения, поскольку запрещает чтение файла. Рекомендованный воркэраунд - рефактор под AAsset_seek() или AAsset_seek64().
Александр Варакосов: Разные есть приложения, например музыкальный плеер и тп, но не суть. Всё же почему fseek при том же самом обращении работает, а lseek нет? и как мне быть, если уже есть функция обертка с определенными аргументами, которая и будет вызывать lseek? просто так заменить lseek на fseek не получится, ибо первое работает через дескриптор, а втророе через хендл.
Александр Варакосов: Всё же разобрался я, lseek работает как надо, только при вызове fgetpos(File*), возвращается не верная инфа о расположении указателя, и если я вызываю команду fdopen, а после fgetpos то она показывается настоящее расположение указателя внутри файла. А при вызове fseek всегда все показывается и не надо заново файл открывать это и вызвало у меня замешательство.