Ls -l en c
hello^^
-
hello^^ -
hello^^ -
Bonjour,
je souhaite coder ls -l en C et j'ai un souci pour recuperer les infos coresspondant au -l
struct dirent *lecture;
DIR *rep;
struct stat informations;
rep = opendir(".");
while ((lecture = readdir(rep)))
{
printf("%s",lecture->d_name);
printf("%ld\n",informations.st_size);
}
closedir(rep);
sa maffiche :
.0
..0
TP20
TP10
ls.c0
ls0
affiche_name.c0
affiche_name0
myLs.c0
myLs0
myLs-l.c0
myLs-l0
pourquoi sa me met la valeur 0?
je souhaite coder ls -l en C et j'ai un souci pour recuperer les infos coresspondant au -l
struct dirent *lecture;
DIR *rep;
struct stat informations;
rep = opendir(".");
while ((lecture = readdir(rep)))
{
printf("%s",lecture->d_name);
printf("%ld\n",informations.st_size);
}
closedir(rep);
sa maffiche :
.0
..0
TP20
TP10
ls.c0
ls0
affiche_name.c0
affiche_name0
myLs.c0
myLs0
myLs-l.c0
myLs-l0
pourquoi sa me met la valeur 0?
Configuration: Windows Vista Internet Explorer 7.0
7 réponses
-
Tu l'initialises où ta variable informations ?
-
sous windows il est plus simple d'utiliser les fonctions FindFirstFile pour lister un dossier.
les '.' et '..' sont à ignorer en général -
bn j'ai declaré la structure mais l'initialiser avec quoi? comment?
Et c'est du C sous linux... mais si qq'un sait comment on enleve "." et ".." dite le !!! merci!! -
Je ne sais pas, mais tu appels le membre st_size de information sans modifier "informations" pas étonnant qu'il te donne toujours 0.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
bonjour,
j'ai refais un peu le truc :
struct dirent *lecture;
struct stat taille;
// Declaration des variables
//
DIR *rep;
int filesize
// Se positionner dans le repertoire courant
//
rep = opendir(".");
// Tant qu'il y a des fichiers, afficher leur nom,les privileges...
//
while ((lecture = readdir(rep)))
{
stat("",&taille);
filesize = taille.st_size;
printf("%s %d \n",lecture->d_name,filesize);
}
printf("\n");
// Fermeture du repertoire
//
closedir(rep);
quand dans stat je specifie un nom de fichier, sa maffiche la bonne taille mais sa l'ecrit egalement sur tous les autres fichiers présents, j'ai essayé en faisant "." et "*.*" pour lui dire d'effectuer le calcul pour chaque fichier mais sa fonctionne pas... si qqun peut maider
merci -
Ton problème n'est pas clair. Donne un exemple STP.
-
non c'est bon j'ai trouvé^^ par contre j'ai une autre question, vous voyez quand vous faites ls -l;
la 1ere ligne il y a ecrit : total [10]
Que represente ce chiffre? comment fait t'on pr le recuperer?
merci