| 
					Библиотека Petit FatFS: pf_write			 | 
				
				
		 		 | 
		
					
	| 
		
			Добавил(а) microsin		
		  
	 | 
| 
 pf_write 
Функция pf_write записывает данные в файл.
 
FRESULT pf_write (
  const void* Buffer, /* Указатель на данные, которые записываются */
  WORD ByteToWrite,   /* Количество записываемых данных */
  WORD* BytesWritten  /* Указатель на переменную для количества записанных байт */
);
 
Параметры 
- Buffer
 - Указатель на данные, которые будут записаны в файл. Если указать NULL, то это будет командой финализировать текущую операцию записи.
 - ByteToWrite
 - Количество байт для записи.
 - BytesWritten
 - Указатель на переменную типа WORD, в которой будет возвращено количество реально записанных байт.
  
Возвращаемые значения 
- FR_OK (0)
 - Функция завершилась успешно.
 - FR_DISK_ERR
 - Функция завершилась неудачно из-за ошибки в работе диска, из-за включенной защиты от записи, из-за испорченной структуры FAT или из-за внутренней ошибки.
 - FR_NOT_OPENED
 - Файл не был открыт.
 - FR_NOT_ENABLED
 - Том не был смонтирован.
  
Описание 
Функция записи имеет несколько следующих ограничений: 
- Функция записи не может создать файл. Можно записывать данные только в уже существующий файл.
 
- Не может быть увеличен размер файла.
 
- Нельзя обновить метку времени (time stamp) файла.
 
- Операция записи может начаться или быть остановлена на границе сектора.
 
- Атрибут read-only (только чтение) не может заблокировать операцию записи.
 
 
Операция записи в файл должна быть выполнена в следующей последовательности. 
- pf_lseek(ofs); позиция чтения/записи файла (read/write pointer) должна быть  помещена на границу сектора перед инициированием операции записи, или она будет округлена вниз до границы сектора.
 
- pf_write(buff, btw, &bw); инициация операции записи. Запись первых данных в файл.
 
- pf_write(buff, btw, &bw); запись последующих данных. Нельзя использовать никакие другие функции, пока идет выполнение операции записи.
 
- pf_write(0, 0, &bw); финализация операции записи. Если позиция чтения/записи в файле (read/write pointer) не находится на границе сектора, оставшиеся байты до границы сектора будут заполнены нулями.
 
 
Позиция чтения/записи файла (read/write pointer) в объекте файловой системы будет увеличена на количество записанных байт. После того, как функция завершится, переменная *BytesWritten должна быть проверена для определения конца файла (end of file, EOF). Если *BytesWritten < ByteToWrite, то позиция чтения/записи при операции записи достигла конца файла. После инициализации операции записи она обязательно должна быть финализирована, иначе записанные данные могут быть потеряны. 
Краткая информация (QuickInfo) 
Функция доступна, когда _USE_WRITE == 1. 
См. также 
pf_open, FATFS 
 
[Ссылки] 
1. pf_write - Write File (оригинал статьи на английском языке).  |