Closed LuisFros closed 5 years ago
Hola!
Por que le restas uno al numero del bloque para sacar el offset?
Imaginemos el offset para el caso del bloque root (0), el offset será 0 * 32 * 64 = 0
lo cual es esperable.
Ahora con el caso del primer bloque (el primer bloque de bitmap) el offset podemos imaginar que será el offset del bloque anterior mas el tamaño de un bloque, es decir 0 + 2048 = 2048
lo cual es equivalente a 1 * 32 * 64 = 2048
.
Como puedes ver, para un bloque n
, el offset será n * 2048
y no (n-1) * 2048
Espero esto resuelva tu duda. Saludos!
Gracias,
Tambien lo habia intentado sin el n-1
, es decir n*2048
pero tampoco es la posicion correcta.
Hola! Revisando el disco, efectivamente habia un error con la generación de este 😅 En breve subiermos otro disco correcto. Saludos y gracias!
Como vimos en la ayudantia, podemos leer el bloque directorio raiz que esta al inicio del disco. Usando el directorio "thanos" (dentro de la raiz) estoy tratando de encontrar su bloque directorio respectivo y no logro entender donde esta.
Segun el buffer y la conversion que vimos en clase, esta en el bloque numero "0x64f1"=25841.
Por lo tanto si quisiera encontrar ese bloque usando fseek() deberia obtener el offset en bytes donde se encuentra el inicio del bloque.
Cada bloque tiene 64 entradas y cada entrada con 32 Bytes.
El offset deberia ser:
(numero_bloque-1)*32*64
En este caso el valor seria
52.920.320
BUtilizando un lector externo para el disco, encontre que ese bloque de directorio esta otra posicion. Porque es esto y que estoy haciendo mal?