Поле “размера” в записи каталога, означающей для каталогов?

Я смотрю на структуру каталогов низкого уровня раздела диска, отформатированного как "vfat" файловая система. Структура записи каталога, которую я использую:

struct __attribute__ ((packed)) Dentry
{
  char          name[11];
  Attr          attr;
  uint8_t       reserved;
  uint8_t       ctimeTenth;
  Time          ctime;
  Date          cdate;
  Date          adate;
  uint16_t      clusterHi;
  Time          mtime;
  Date          mdate;
  uint16_t      clusterLo;
  uint32_t      size;
};

Так, последние четыре байта записи каталога должны представить размер файла или каталога в байтах. Однако в моих записях каталога экспериментов для каталогов (не файлы) всегда имеют нуль в size поле. Например, это dd дамп моего корневого каталога с одним файлом и одним непустым подкаталогом (названный qqq):

00000000  42 65 00 65 00 66 00 66  00 66 00 0f 00 fe 00 00  |Be.e.f.f.f......|
00000010  ff ff ff ff ff ff ff ff  ff ff 00 00 ff ff ff ff  |................|
00000020  01 61 00 61 00 61 00 62  00 62 00 0f 00 fe 62 00  |.a.a.a.b.b....b.|
00000030  63 00 63 00 63 00 64 00  64 00 00 00 64 00 65 00  |c.c.c.d.d...d.e.|
00000040  41 41 41 42 42 42 7e 31  20 20 20 20 00 64 43 60  |AAABBB~1    .dC`|
00000050  d1 44 d1 44 00 00 43 60  d1 44 04 00 0b 00 00 00  |.D.D..C`.D......|
00000060  41 71 00 71 00 71 00 00  00 ff ff 0f 00 3d ff ff  |Aq.q.q.......=..|
00000070  ff ff ff ff ff ff ff ff  ff ff 00 00 ff ff ff ff  |................|
00000080  51 51 51 20 20 20 20 20  20 20 20 10 00 00 20 79  |QQQ        ... y|
00000090  d1 44 d1 44 00 00 20 79  d1 44 09 00 00 00 00 00  |.D.D.. y.D......|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

(Байты с size 0x9c - 0x9f),

Вы могли объяснить меня, почему этот размер является нулем? Или может быть, кто-то мог указать на меня на документ, описав vfat записи каталога с большим количеством деталей?

(Я нахожусь на Ubuntu 3.11.10.3, работая как гость ОС в VMware Fusion на Mac),

0
задан 18 June 2014 в 01:48

1 ответ

Каталог не является на самом деле файлом, но логическим путем к системе для организации себя. Путем каталоги были бы сохранены (в зависимости от файловой системы) в своего рода таблице. Например: FAT использует F ile А местоположение способный T.

, Таким образом, размер каталога зависел бы от суммы пространства, которое это поднимает в той таблице, больше каталогов равняется большей таблице (таблицам). Это может быть просто пара байтов.

я мог быть неправ в некоторых точках, но я вполне уверен, это - то, почему Вы не видите размера в шестнадцатеричном числе (поскольку это - главным образом указатель).

0
ответ дан 18 June 2014 в 01:48

Другие вопросы по тегам:

Похожие вопросы: