Enrique,
1) Donde dice "resto" debió decir "camino" que es la variable que mantiene lo que queda del camino por procesar
2) La letra dice que la función leer devuelve false si hubo algun problema. En ese caso no se puede continuar y por eso retorna false.
3) La variable bloque está definida como un arreglo de 8 entrada_dir. Cada entrada_dir ocupa 128 bytes. Las reglas de disposición de variables en memoria dice que si tenés un arreglo de elementos éstos se disponen contiguos. Por lo tanto un arreglo de 128 bytes ocupa 128*8=1024 bytes que es el tamaño de bloque. La llamada a leer efectivamente va a leer 1 bloque de 1024 bytes y va a colocar la información a partir del primer byte de bloque[0], terminando en el último byte de bloque[7].
Saludos,
Gustavo