У меня есть двоичный файл, заполненный 2-байтовыми словами, следующими за этим шаблоном (в HEX): 0XY0.это часть кода, где я выполняю fread и fopen.
unsigned short buffer[bufferSize];
FILE *ptr; //
ptr = fopen(fileIn,"rb"); //
if(ptr == NULL)
{
fprintf(stderr,"Unable to read from file %s because of %s",fileIn,strerror(errno));
exit(20);
}
size_t readed = fread(buffer,(size_t)sizeof(unsigned short),bufferSize,ptr);
if(readed!=bufferSize)
{
printf("readed and buffersize are not the same\n");
exit(100);
}
//---------------------------
Если я смотрю на любое содержимое буфера, например, на buffer [0], вместо того, чтобы быть коротким с шаблоном 0XY0, онэто короткая модель Y00X Где моя ошибка?это что-то относительно порядка байтов?Конечно, я проверил каждый элемент внутри буфера.программа выполняется без ошибок.
РЕДАКТИРОВАТЬ: Если я читаю из файла с размером char вместо short, содержимое буфера (очевидно, изменилось на char buffer [bufferSize * 2];) соответствует шаблону OXYO.Таким образом, у меня есть (например) буфер [0] 0X и буфер [1] Y0