Hola, soy
manuzafra@hotmail.com, no se si se te acordaras, me dijiste
que planteara mis dudas en el foro y aqui estoy. Muchas gracias ante todo.
Empiezo ya, intentare seguir un orden para que no nos perdamos.
Parece un poco largo pero creo que me he explicado bien y no creo que te sea
dificil contestarme
Dudas sobre el fichero Plstat.c:
1.-En la funcion escribeInfoFichero practicamente
lo primero que haces es lo siguiente:
/*
* Comprobación del parámetro de entrada
*/
if (nombreFichero == NULL)
return;
La primera pregunta es cual es el funcionamiento de esta parte de codigo
ya que no la entiendo muy bien. Yo creo que es para el caso en que se llame
a la funcion sin pasarle ningun parametro. Es esto cierto? Y si esta no es la
funcion, como puedo hacer lo que yo digo?
2.-Lo siguiente que haces es:
printf ("El fichero %s --> ", nombreFichero);
Vale entiendo lo que hace. Este programa Plstat esta diseñado para
que a la funcion se le pase como parametro un archivo pero que pasa
si estoy en otro directorio y le quiero pasar una ruta entera. Para que
me entiendas cuando digo una ruta me refiero a algo del tipo
home/alumno/plstat.c por ejemplo.
3.- siguiente: para comprobar el tipo de archivo q es el idem q le has pasao
como parametro a tu funcion tu lo haces asi
if (S_ISREG(datosFichero.st_mode))
en la practica que tenemos que hacer nos dicen que lo hagamos asi
if((datosFichero.st_mode & S_IFMT)==S_ISREG)
aqui la duda que tengo es cual es la diferencia entre los dos (entiendo
que el resultado sera el mismo) y si sabes por qué para saber el tipo
de archivo hay que ejecutar la operación AND sobre la constante S_IFMT
y el campo st_mode de la estructura stat?
4.- Viendo el Mils.c veo que lo de liberar memoria es bastante importante
Y mi pregunta es si cuando usemos lstat, la struct stat que tu has llamado
struct stat datosFichero;
guarda mucha informacion en memoria, habria que liberarla tambien??
5.- En otro apartado debemos mostrar informacion del archivo que le hemos
pasado como parametro al lstat, y bueno seria tan sencillo como acceder al
apartado donde se guarda esa informacion y hacer un printf pero como te digo
si mi objetivo es pasarle como parametro una ruta la duda que tengo es como
separar la ruta el nombre del archivo y presentarlos por separado, Por si no
me entiendes si tengo la ruta home/alumno/plstat.c
presentar la info por pantalla de la siguiente manera:
Nombre del archivo plstat.c
[vale acabo de darme cuenta que en la practica dice ruta completa lo que
incluiria tb el nombre del archivo, lo preguntare al profesor a ver cual
de las dos formas siguientes es]
Ruta completa1: home/alumno/
Ruta completa2: home/alumno/plstat.c
6.- Por ultimo mi objetivo es hacer un archivo ejecutable al que se le puedan
pasar no solo una ruta o un fichero si no mas de uno. Lo tengo hecho para que
sea el main el que reciba los parametros. Pero no se como implementar el resto.
Supongo que una manera seria almacenarlos en una matriz y hacer un bucle
do{}while hasta que hiciera el lstat con todos los parametros que le he pasado.
Pero me pierdo en el como hacer esto, en pasarle parametros al main.
Aver si puedes ayudarme, te lo agradeceria mucho.
quizas si te paso el texto de mi practica entenderias mejor mis dudas.
lo dejo para la proxima.
Tengo que realizar un makefile tambien voy a ponerme ahora mismo y
no dudes que te preguntare.
Un saludo