Ls -l en c

Fermé
hello^^ - 12 févr. 2010 à 14:00
 hello^^ - 15 févr. 2010 à 09:22
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?
A voir également:

7 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
12 févr. 2010 à 14:10
Tu l'initialises où ta variable informations ?
0
bitrate Messages postés 439 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 22 mars 2011 98
12 févr. 2010 à 14:13
sous windows il est plus simple d'utiliser les fonctions FindFirstFile pour lister un dossier.

les '.' et '..' sont à ignorer en général
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
12 févr. 2010 à 15:38
Ouai, mais si on veu faire un truc portable ?
0
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!!
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
12 févr. 2010 à 16:35
Je ne sais pas, mais tu appels le membre st_size de information sans modifier "informations" pas étonnant qu'il te donne toujours 0.
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
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
15 févr. 2010 à 09:01
Ton problème n'est pas clair. Donne un exemple STP.
0
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
0