Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonctions stat(), fstat()

Argument invalide

Sujet résolu
    5 novembre 2006 à 15:30:26

    Je cherche à obtenir les stats d'un fichier texte (la date de dernier accès m'intéresse), et voila la fonction qui semblerait apporter mon bonheur :

    int stat(const char *file_name, struct stat *buf);


    struct stat {
        dev_t         st_dev;      /* Périphérique                */
        ino_t         st_ino;      /* Numéro i-noeud              */
        mode_t        st_mode;     /* Protection                  */
        nlink_t       st_nlink;    /* Nb liens matériels          */
        uid_t         st_uid;      /* UID propriétaire            */
        gid_t         st_gid;      /* GID propriétaire            */
        dev_t         st_rdev;     /* Type périphérique           */
        off_t         st_size;     /* Taille totale en octets     */
        blksize_t     st_blksize;  /* Taille de bloc pour E/S     */
        blkcnt_t      st_blocks;   /* Nombre de blocs alloués     */
        time_t        st_atime;    /* Heure dernier accès         */
        time_t        st_mtime;    /* Heure dernière modification */
        time_t        st_ctime;    /* Heure dernier changement    */
    };


    J'essaie donc de l'employer de cette manière :

    int main(int argc, char *argv[])
    {
        struct stat statutDuFichier;
        int i;
        i = stat("test.txt", statutDuFichier);

        if(i == 0)
        {
            printf("%d", (int)statutDuFichier.st_atime);
        }
         
        else
        {
            return 0;
        }
     
     
        system("PAUSE");   
        return 0;
    }


    Le compileur (gcc) me renvoie l'erreur : "incompatible type for argument 2 of 'stat' ".

    Je ne comprend pas vraiment l'erreur, donc je requiert votre aide :p

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      5 novembre 2006 à 16:43:01

      Comme la fonction prend un pointeur, il faut lui passer une adresse, donc tu rajoutes un & dans l'appel de la fonction.
      i = stat("test.txt", &statutDuFichier);
      • Partager sur Facebook
      • Partager sur Twitter
        5 novembre 2006 à 17:37:55

        Whoaw c'était aussi simple que ça o_O

        Merci beaucoup :D
        • Partager sur Facebook
        • Partager sur Twitter

        Fonctions stat(), fstat()

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown