IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

[FILE] différence de taille de fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut [FILE] différence de taille de fichier
    Bonjour,

    je suis en train de débuter en C et pour un programme de lecture de fichier, je dois savoir la taille d'un fichier pour un futur calcule. J'ai fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int file_length(FILE *f){
    	int pos;
    	int end;
    	pos = ftell (f);
    	fseek (f, 0, SEEK_END);
    	end = ftell (f);
    	fseek (f, pos, SEEK_SET);
    	return end;
    }
    et pour le print je fais simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int filesize = file_length(fichier);
     
    	printf("file size = %i\n",filesize);
    D'après ce que j'ai pu lire, la valeur retournée est en Byte. Cependant j'obtiens une valeur différente que si je regarde la taille de mon fichier en faisant un clic droit sur le fichier.Je précise que je suis sous Linux 12.04 64 bits

    merci de votre précieuse aide

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Il faut savoir que les fichiers sont stockés dans le disque dur dans des secteurs de taille fixe.

    Or, il ne peut y avoir qu'un seul fichier par secteur, la taille du fichier sera donc le nombre de secteur nécessaires pour le stocké arrondit à l'entier supérieur.

    Donc si un fichier nécessite d'avoir 3,25 secteur, il aura la taille de 4 secteurs.


    Or avec fseek, on se place sur le dernier octet du fichier et non sur le dernier octet du dernier secteur.


    Ceci devrait t'intéresser :
    http://man.developpez.com/man2/stat.2.php

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    et si j'ai pas de disque dur mais 1 SSD sa change ? lol

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Je n'ai pas tout lu, mais il me semble qu'il y a tout de même un arrondit :

    http://www.infobidouille.com/article...d#.T6y0L8VvD_c

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    j'ai aussi lu qu'on pouvais récupérer la taille d'un fichier avec sys/stat.h est-ce que sa serai plus simple ?

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Plus simple, peut être plus rapide aussi.

    J'avais édité un de mes posts pour mettre un lien vers le man de stat.h mais comme tu as posté juste avant que je valide l'édition, tu n'as pas dû le voir.

Discussions similaires

  1. input type="file" et taille des fichiers
    Par voyageurdumonde dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/06/2012, 19h25
  2. Réponses: 14
    Dernier message: 28/08/2008, 19h27
  3. <html:file> taille du fichier
    Par youcef81 dans le forum Struts 1
    Réponses: 1
    Dernier message: 04/08/2008, 11h33
  4. Lecture fichier via url ou file, différence ?
    Par kij dans le forum Entrée/Sortie
    Réponses: 28
    Dernier message: 03/01/2007, 13h30
  5. Réponses: 4
    Dernier message: 08/09/2006, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo