[an error occurred while processing this directive]
[CCS 55x] fwrite, write - пишут только младшый байт 16-битного значения
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено BrainJTAG 03 февраля 2005 г. 12:59

Допустим надо записать в файл на диске какой-то буфер из памяти проца.
Делаю так:

FILE *f;
int buf[0x100];
f=fopen("buf.txt","w+b");
memset(buf,0xCABD,sizeof(int)*0x100);
i=fwrite(buf,sizeof(int),0x100,f);
fclose(f);

Вот результат:

0000000000: BD BD BD BD BD BD BD BD , BD BD BD BD BD BD BD BD
0000000010: BD BD BD BD BD BD BD BD , BD BD BD BD BD BD BD BD
...
00000000F0: BD BD BD BD BD BD BD BD , BD BD BD BD BD BD BD BD

Тоесть сохраняется только младший байт 16-битных слов.
Я понимаю что функции fwrite,write на вход хотят 8-битный char, а где его взять если есть только 16-битный char ???
Кто знает как сохранять правильно весь буфер "как он есть" в файл ?

П.С. Извиняюсь за мусор в форуме, проблема с кодировкой...

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru