Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: грабли с fread()/fwrite()
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Doka
ситуация:
надо прочесть файл и записать файл (файлы разные) в программном симуляторе CCS

прогоняю один и тот же код (естественно с разными хидерами типов данных), в MSVC 6.0 и в в CCS3.1.
работает все за исключением правильной работы функций fread()/fwrite()

в файл записываются только младшие байты массива =(

вроде Си он и в африке Си. На всякий случай открыл spru281 - С/C++ compiler UG: передаваемые параметры те, вроде всё соблюл:
Код
fwrite(*массив, 2(байта), размер_массива, *имя_файла)

кто сталкивался?
marazm
Цитата(Doka @ Nov 30 2006, 06:41) *
в файл записываются только младшие байты массива =(


В том ЦСП, в чаре, 8 или 16 бит?
SM
Цитата(Doka @ Nov 30 2006, 00:41) *
кто сталкивался?


Если C55xx - то он усекает 55-ые 16-битные чары до интеловских, 8-битных, просто отбрасывая старшую часть.
Doka
Цитата(SM @ Nov 30 2006, 01:45) *
Если C55xx - то он усекает 55-ые 16-битные чары до интеловских, 8-битных, просто отбрасывая старшую часть.

да вот пользуюсь я как раз не чаром:

Код
  typedef short  s16;
...
  s16 a[SIZE];
...
  fwrite(a, sizeof(s16), SIZE, f_out);


или можно переформулировать вопрос так: чем надо пользоваться, чтобы правильно записывать файлы fwrite() ?
alex_os
Цитата(Doka @ Nov 30 2006, 10:37) *
Цитата(SM @ Nov 30 2006, 01:45) *
Если C55xx - то он усекает 55-ые 16-битные чары до интеловских, 8-битных, просто отбрасывая старшую часть.

да вот пользуюсь я как раз не чаром:

Код
  typedef short  s16;
...
  s16 a[SIZE];
...
  fwrite(a, sizeof(s16), SIZE, f_out);


или можно переформулировать вопрос так: чем надо пользоваться, чтобы правильно записывать файлы fwrite() ?


Написать свою фунцию записи в файл, больше ничего не поможет.

void my_write(FILE *fp, short in)
{
fwrite(&in, 1, 1, fp);
in>>=8;
fwrite(&in, 1, 1, fp);
}
Doka
alex_os, спасибо. так и пришлось сделать
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.