Библиотека FatFS: f_forward |
Добавил(а) microsin |
f_forward Функция f_forward читает данные файла и перенаправляет их в потоковое устройство даных (data streaming device). FRESULT f_forward ( FIL* FileObject, /* Файловый объект */ UINT (*Func)(const BYTE*,UINT), /* Функция потоковых данных (Data streaming function) */ UINT ByteToFwd, /* Количество байт для перенаправления */ UINT* ByteFwd /* Количество перенаправленных данных */ ); Параметры
Возвращаемые значения FR_OK, FR_DISK_ERR, FR_INT_ERR, FR_NOT_READY, FR_INVALID_OBJECT, FR_TIMEOUT Описание Функция f_forward читает данные из файла и перенаправляет их в исходящий поток (outgoing stream), без использования буфера данных. Такое использование чтения подходит для систем с дефицитом памяти, потому что в модуле приложения не нужен буфер для данных. Указатель позиции в файле внутри файлового объекта будет увеличиваться на количество перенаправленных байт. Если *ByteFwd < ByteToFwd, то это не обозначает ошибку, просто запрашиваемое количество байт не было перенаправлено по причине достижения конца файла (end of file, EOF), либо поток был занят во время передачи данных. Краткая информация (QuickInfo) Функция доступна, когда _USE_FORWARD == 1 и _FS_TINY == 1. Пример кода (воспроизведение звука, Audio playback) /*-------------------------------------------------------------------------*/ /* Пример кода функции передачи данных, которая будет вызвана из f_forward */ /*-------------------------------------------------------------------------*/ UINT out_stream ( /* Возвращает количество отправленных байт или состояние потока */ const BYTE *p, /* Указател на данные отправляемого блока */ UINT btf /* >0: вызов передачи (количество байт для отправки). 0: вызов См. также [Ссылки] 1. f_forward - прямая передача данных файла в поток (оригинал статьи на английском языке). |