Maison > développement back-end > C++ > Comment déterminer de manière fiable la taille d'un fichier en C ?

Comment déterminer de manière fiable la taille d'un fichier en C ?

Mary-Kate Olsen
Libérer: 2024-11-21 07:46:10
original
297 Les gens l'ont consulté

How to Reliably Determine File Size in C  ?

Déterminer la taille d'un fichier en C : une approche fiable et portable

En C, obtenir la taille d'un fichier est une opération cruciale souvent rencontrée en programmation tâches. Pour identifier la méthode la plus appropriée pour y parvenir, il est essentiel de prendre en compte des facteurs tels que la portabilité, la fiabilité et la simplicité du code.

Une approche largement utilisée consiste à utiliser la classe ifstream de la bibliothèque standard C. En ouvrant un fichier en mode binaire et en spécifiant l'indicateur ate, le flux d'entrée cherche la fin du fichier. Par la suite, la fonction membre tellg() peut être utilisée pour récupérer la position actuelle dans le fichier, fournissant ainsi la taille du fichier.

Exemple de code :

#include <fstream>

std::ifstream::pos_type filesize(const char* filename) {
    std::ifstream in(filename, std::ifstream::ate | std::ifstream::binary);
    return in.tellg(); 
}
Copier après la connexion

Cependant, il est important de noter que cette approche comporte une réserve potentielle. tellg() ne rapporte pas toujours avec précision la taille du fichier sur certaines plateformes. Pour une solution plus robuste, des méthodes alternatives, telles que la recherche de la fin du fichier à l'aide de seekg() et tellg() avant d'ouvrir le fichier en mode binaire, peuvent être nécessaires.

L'extrait de code fourni calcule efficacement la taille du fichier en fonction de la présomption que le fichier peut être ouvert et accessible. Des mécanismes appropriés de gestion des erreurs doivent être implémentés dans une application de niveau production pour tenir compte des exceptions potentielles lors de l'ouverture ou de la lecture de fichiers.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal