Как считывать количество жиров из файловой системы FAT?

#c #filesystems #fat

Вопрос:

Я пытаюсь определить количество жиров, которые могут быть в моей файловой системе FAT. Для этого я читаю в качестве ссылки документацию, найденную здесь.

Говорят, что количество жиров указано в 16-м байте двоичного файла. Но он имеет длину 1 байт. Из моих знаний я знаю, что целые числа имеют длину не менее 4 байт.

Как я могу прочитать количество жиров в моем двоичном файле?

Я все равно пытался прочитать его, но безуспешно:

 void test(int file_descriptor) {
    int nFats;

    lseek(file_descriptor, 16, SEEK_SET);
    read(file_descriptor, amp;nFats, 1);

    printf("Number of FATs: %dn", nFats);
}
 

Комментарии:

1. Ну, один байт без знака даст вам число от 0 до 255. Я думаю, этого достаточно для количества жиров. Воспользуйся uint8_t .

2. Подсказка: unsigned char является целочисленным типом.

3. Взгляните на stdint.h

4. Возможно, вам захочется определить (упакованную) структуру загрузочного сектора для доступа к такой информации. Это поможет вам также в любой другой работе с файловой системой.