Ls -l en c

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?
Configuration: Windows Vista Internet Explorer 7.0

7 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Tu l'initialises où ta variable informations ?
    0
  2. bitrate Messages postés 441 Date d'inscription   Statut Membre Dernière intervention   98
     
    sous windows il est plus simple d'utiliser les fonctions FindFirstFile pour lister un dossier.

    les '.' et '..' sont à ignorer en général
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      Ouai, mais si on veu faire un truc portable ?
      0
  3. hello^^
     
    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
  4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hello^^
     
    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
  7. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Ton problème n'est pas clair. Donne un exemple STP.
    0
  8. hello^^
     
    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