Я написал программу c
для чтения файла MP3 и печати полей TAG2. Исходный код:
void main(void)
{
FILE *w;
char c[10]={0};
int ver, flag, size;
w=fopen("test.mp3,"rb");
fread(c,1,3,w);
printf("TAG2 identifier:%s\n",c);
fread(&ver,1,2,w);
printf("TAG2 version:%d\n",ver);
fread(&flag,1,1,w);
printf("Flags:%d\n",flag);
fread(&size,1,4,w); //????????
..........
}
Я знаю, что самый старший бит в каждом байте размера равен 0 и его следует игнорировать.
Но кажется, что когда read()
считывает 4 байта размера, порядок байтов меняется на противоположный. Как я могу прочитать размер в правильном порядке байтов?