Programmation de la commande ls pour un debutant en langage reseaux C

ced57350 Messages postés 1 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 9 mars 2009 - 9 mars 2009 à 15:55
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 9 mars 2009 à 18:48
Bonjour,
J'ai pour mission de coder la fonction ls avec le maximum d'option.
Pour l'instant j'ai réussi a programmer une commande permettant de faire comme un ls -l mais avec en plus affichage des droits ( rwx )




#include <sys/stat.h>
#include <stdio.h>
#include<dirent.h>
#include<errno.h>
#include

int main (int argc, char* argv[])
{
DIR* ptdir;
struct dirent* entree;
char les_droits[8][4] = {"---", "--x", "-w-", "-wx", "r--", "r-x", "rw-","rwx" };
int droit;
int bool;
struct stat info;
ptdir = opendir(".");
if (!ptdir) { fprintf(stderr,"pb opendir\n");
exit(1);
}
while ((entree = readdir (ptdir)) != NULL)
{if (argc==0)
printf ("%s %d \n",entree->d_name, entree->d_ino);
else {
bool = lstat (entree->d_name, &info);
if (bool == -1){printf ("chemin inexistant\n");}
else {
if (entree->d_name[0] != ".")
printf ("%s", les_droits[(droit>>6)&7] ); // décale de 6 bits et fait une somme bit à bit avec 7 donc fait apparaitre les droits propriétaire
printf ("%s", les_droits[(droit>>3)&7] ); // même opération mais décale de 3 --> droits groupe
printf ("%s", les_droits[(droit)&7] ); // même opération mais ne décale pas pour faire apparaitre les droits des autres.
printf ("%s %d \n",entree->d_name, entree->d_ino);
droit = info.st_mode; //met les droits en binaire dans droit


}}}
closedir(ptdir);
return(0);
}


Il me reste les autre options mais je ne voit pas trop comment faire donc je me permet de vous demander de m'aider pour les autres options.
Pourriez-vous m'indiquer quelles pistes suivrent?
Je vous remercie d'avance.
Au revoir.

1 réponse

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 mars 2009 à 18:48
salut

le man de ls est tres precis sur les options que tu peux gerer.

le tri, les parametres d'affichages, ce sont des choses tres simples.
0
Rejoignez-nous