segundo parcial 2017 - ejercicio 2

segundo parcial 2017 - ejercicio 2

de Esteban Gabriel Risso Martinez -
Número de respuestas: 3

Buenas, tengo una duda de la implementación de la función eliminar. La misma pide eliminar las referencias que haya al archivo que se va a eliminar.

Mi pregunta es si dentro de un inodo de tipo directorio hay una referencia al archivo a eliminar en un determinado bloque de datos del mismo me parece que no seria necesario seguir buscando en los de mas bloques de datos porque solo puede haber una referencia al archivo por directorio no? 

Pregunto porque recorren todos los bloques de datos de un inodo de tipo directorio sin importar si encuentran o no una referencia al archivo a eliminar en el mismo.


Muchas gracias!

Saludos.


En respuesta a Esteban Gabriel Risso Martinez

Re: segundo parcial 2017 - ejercicio 2

de Esteban Gabriel Risso Martinez -

Agradezco si alguien me responde la duda.

Gracias!

En respuesta a Esteban Gabriel Risso Martinez

Re: segundo parcial 2017 - ejercicio 2

de Alexis Alfonso -

Si no me equivoco, un archivo puede tener más de una referencia dentro del mismo directorio, mientras todas las referencias se llamen distinto.

Por eso es necesario recorrer todas las entradas de cada bloque del inodo directorio.


Pero si lo confirma un profesor, mejor.


Saludos

En respuesta a Esteban Gabriel Risso Martinez

Re: segundo parcial 2017 - ejercicio 2

de Rodrigo Gallardo -

Buenas Esteban,

Tal como explico el compañero, en algunos sistemas operativos (por ejemplo, Ubuntu) se pueden tener dos referencias (hard-links) al mismo inodo, con distinto nombre, dentro de un mismo directorio. Por eso es que es necesario recorrer todas las entradas de ese directorio buscando referencias al archivo.

Para probarlo ustedes mismos, en Linux, se pueden crear dos referencias a un mismo archivo utilizando el comando "ln" y luego listandolas con el comando "ls -i", y verán que el numero de inodo es el mismo para las dos referencias y para el archivo referenciado.

Saludos, Rodrigo.