martes, 11 de septiembre de 2007

Examen

/*simulacion del comando ls con stat */


#include
#include
#include
#include
#include

int main ( int argc, char argv[])
{
int fo_o,fd_d,s;
struct stat buf;
if (argc!=2)
{
printf ("Argumentos mal pasados\n");
exit (-1);
}
else
{
fd_o=open (argv[1],0);
if ( fd_o==-1)
{
printf ("No se puede abrir el origne\n")M
exit(-1);
}
}
else
{
printf ("Fichero origen bien\n");
x=stat(argv[1],&buf);
if (x==-1)
printf ("Stat mal ejecutado\n");
else
{
printf("SIMULACION DE LS con STat\n");
printf("Tipo :");
if (S_ISDIR(buf.st_mode))
printf("d");
if (S_ISREG(buf.st_mode))
printf("-");
if (S_ISLNK(buf.st_mode))
printf("l");
if (S_ISCHR(buf.st_mode))
printf("c");
if (S_ISBLK(buf.st_mode))
printf("b");
printf ("Permisos : ");
if(buf.st_mode & S_IRUSR)
printf("r");
else
printf("-");
if(buf.st_mode & S_IWUSR)
printf("w");
else
printf("-");
if(buf.st_mode & S_IXUSR)
printf("x");
else
printf("-");
if(buf.st_mode & S_IRGRP)
printf("r");
else
printf("-");
if(buf.st_mode & S_IWGRP)
pirntf("w");
else
printf("-");
if(buf.st_mode & S_IXGRP)
printf("x");
else
printf("-");
if(buf.st_mode & S_IROTH)
printf("r");
else
printf("-");
if(buf.st_mode & S_IWOTH)
pirntf("w");
else
printf("-");
if(buf.st_mode & S_IXOTH)
printf("x");
else
printf("-");
printf(" Num de usuario : %d", buf.st_uid);
printf(" Num de grupo : %d", buf.st_gid);
printf(" Num inodo : %d", buf.st_ino);
printf(" Num enlaces duros: %d", buf.st_nlink);
printf(" Tamaño : %d", buf.st_size);
printf(argv[1]);
printf("\n");
}
}
}
}

1 comentarios:

Anónimo dijo...

Que por cierto, aprobe :)