Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/05/2011, 12:40
Avatar de plantala
plantala
 
Fecha de Ingreso: abril-2008
Ubicación: Jamaica
Mensajes: 176
Antigüedad: 16 años
Puntos: 1
Respuesta: Estructura stat en linux, ¿para que sirve, y como funciona?

Buenas, muchas gracias por la ayuda sam90, ahora tengo otra pequeña duda. Viendo algun programa, veo que se utizilan argc y argv[]. Segun he podido entender, argc te dice cuantos argumentos tiene el fichero, y el argv[] te dice cual es cada argumento... Pero no lo entiendo del todo, por ejemplo:
Tengo un archivo con el nombre "ejemplo.txt", como me aparecen su informacion?
Es decir, por ejemplo, si me da la informacion de su tamaño, como me aparece representado? ejemplo.txt 512 ?
En este caso, seria argc=2 , argv[1]=ejemplo.txt y argv[2]=512 ?


Por otro lado, he encontrado un programa, y no entiendo muy bien su funcionamiento:

[I]#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define TAMANO 512
void report( char * name, struct stat * buffer)
{
printf("%s:",name);
printf( "i-nodo: %d\t", buffer->st_ino );
printf( "size: %ld\n", buffer->st_size );
}

int main( int argc, char *argv[] )
{
struct stat estructura;
if (argc < 2) Que hace este if ? escribe como segundo argumento
{ del archivo un error? Cual es el error?
char buff[]="Error de (1)";
write(2,buff, sizeof(buff));
exit(-1);
}
int i=1;
while(i<argc)
{
if( stat( argv[i], &estructura ) < 0 ){ Que es lo que compara este if ?
perror( "(2)" );
exit(-1);
}
else
report(argv, &estructura); Cual es el significado de report ?
i++;
}
return 0;
}


Bueno, ya se que son bastantes dudas, soy bastante novato en esto, pero agradeceria cualquier pequeña ayuda.
Gracias de nuevo.
Un saludo!
__________________
"Independizate de la esclavitud mental; tan solo nosotros mismos podemos liberar nuestra mente"-Bob Marley