8Sep
Nous sommes tous parfois confrontés à une «situation» sur nos ordinateurs qui nous laisse complètement déconcertés, comme un fichier qui a une taille nulle, mais comment est-ce possible? Le SuperUser Q & A d'aujourd'hui a les réponses à la question d'un lecteur confus.
Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.
La question
SuperUser lecteur Eugene S veut savoir comment la taille d'un fichier peut être zéro:
C'est quelque chose que j'ai rencontré et ne pouvait pas penser à une bonne explication. Si je crée un fichier *. txt vide sur mon ordinateur et que je regarde sa taille, il affiche une taille de zéro. Comment est-ce possible? Je veux dire même si le fichier lui-même est vide, il doit encore avoir une certaine taille( même si c'est juste pour stocker son propre nom).Comment cela peut-il être expliqué?
Comment un fichier peut-il avoir une taille nulle?
La réponse
SuperUser contributeurs David Schwartz et Cort Ammon ont la réponse pour nous. Tout d'abord, David Schwartz:
C'est possible parce qu'il n'y a vraiment pas de fichier. Il y a juste une entrée de répertoire avec un nom et un propriétaire. L'entrée du répertoire est logiquement distincte du fichier. Par exemple, le même fichier peut avoir plusieurs noms dans plusieurs répertoires.
Malheureusement, le terme fichier n'est pas toujours utilisé pour signifier exactement la même chose. Mais la logique de taille de fichier provient du modèle où une entrée de répertoire attache un fichier à un répertoire, puis les noms de fichiers et les métadonnées associées sont stockés dans le répertoire.
Suivi de la réponse de Cort Ammon:
La signification sémantique de la taille du fichier est différente de celle que vous utilisez.
Il existe de nombreuses tailles de fichiers significatives. Le plus commun, et celui que vous voyez ici, est le nombre d'octets dans le fichier. Si le fichier est un fichier texte vide, il peut en effet contenir zéro octet. Ce numéro est important pour les programmeurs car nous avons souvent besoin d'ouvrir un fichier, de lire toutes les données et de le fermer. Nous devons savoir combien d'octets de données figureront dans le fichier afin que nous puissions planifier à l'avance.
Une autre signification vient de la façon dont la plupart des systèmes de fichiers stockent des données. La plupart des systèmes de fichiers stockent des données dans des blocs. Par exemple, le système de fichiers peut stocker des données dans des blocs de 64 Ko, ce qui signifie qu'il n'allouera jamais rien qui ne soit un multiple pair de 64 Ko. Cela semble inefficace, mais cela peut rendre la comptabilité un peu plus simple, et souvent plus simple signifie plus rapide.
Une troisième signification, que vous êtes en train de tirer, serait le nombre réel de bits requis sur le disque dur pour décrire la présence d'un fichier. Cela inclut les informations généralement stockées séparément du fichier. Par exemple, sous Linux, le concept du nom de fichier est stocké dans l'inode du répertoire contenant le fichier.[ Basé sur l'entrée d'autres commentaires, ceci est( techniquement) stocké dans les données du répertoire. Quand j'ai écrit ceci, je pensais au cas du petit répertoire. Les données inférieures à 156 octets peuvent être stockées directement dans l'inode. ] Ce n'est pas une signification communément utilisée car il est terriblement difficile à déterminer sans connaître le fonctionnement interne extrêmement profond de votre système de fichiers( comme la prise en compte de l'espace nécessaire pour stocker toutes les permissions sur le fichier).Cependant, si vous avez un disque dur de 1 000 000 octets et que vous voulez savoir quelle taille d'un fichier peut tenir sur ce disque dur, ce sera une signification très importante pour vous!
Avoir quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.