Найдите смещение байта 8,62,000 (файловая система UNIX v7) с помощью fseek - PullRequest
0 голосов
/ 02 мая 2018

Имеется размер блока диска 4 КБ, i-узел для этого файла указан на рисунке:

  1. найти, в каком конкретном блоке вы получите это смещение?

  2. Какое байтовое смещение в этом конкретном блоке диска?

1 Ответ

0 голосов
/ 24 июня 2019

Я рассчитал, что 862000/4096 даст мне смещение логического блока = 210 блоков нет от того места, где был определен i-узел. Также я обнаружил, что прямые блоки и одно косвенное не могут использоваться. Также я не могу использовать двойное косвенное потому что тогда максимальный логический блок без смещения будет 109 (или 110 не уверен), что означает, что смещение байта 8,62,000 должно быть получено путем тройной косвенной адресации. Кроме того, я обнаружил, что номер блока диска равен 4092 и в этом блоке диска 862000% 4096 = 1840 - это смещение байта. Таким образом, 862000-й байт файла - это байт 1840 блока 4092.

...