8Sep

Πώς μπορεί το μέγεθος αρχείου να είναι μηδέν;

click fraud protection

Όλοι περιστασιακά αντιμετωπίζουμε μια «κατάσταση» στους υπολογιστές μας που μας αφήνει εντελώς αμηχανία, όπως ένα αρχείο που έχει μέγεθος μηδέν, αλλά πώς είναι ακόμη δυνατό;Η σημερινή δημοσίευση του χρήστη SuperUser Q & A έχει τις απαντήσεις σε μια ερώτηση που προκαλεί σύγχυση στον αναγνώστη.

Η σημερινή ερώτηση &Η συνάντηση απαντήσεων έρχεται με την ευγένεια του SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα-καθοδηγούμενη ομαδοποίηση Q & A ιστοσελίδες.

Η ερώτηση

SuperUser αναγνώστης Eugene S θέλει να ξέρει πώς το μέγεθος του αρχείου μπορεί να είναι μηδέν:

Αυτό είναι κάτι που έτρεξα και δεν μπορούσα να σκεφτώ μια σωστή εξήγηση.Εάν δημιουργήσω ένα κενό αρχείο *. txt στον υπολογιστή μου και έπειτα εξετάζω το μέγεθός του, εμφανίζει μέγεθος μηδέν.Πώς γίνεται αυτό?Εννοώ ακόμα και αν το ίδιο το αρχείο είναι άδειο, πρέπει να έχει κάποιο μέγεθος( ακόμα και αν πρόκειται απλά για να αποθηκεύσει το δικό του όνομα).Πώς μπορεί να εξηγηθεί αυτό;

Πώς είναι δυνατόν ένα αρχείο να έχει μέγεθος μηδέν;

instagram viewer

Οι ανταποκριτές του

SuperUser απάντησης David Schwartz και Cort Ammon έχουν την απάντηση για εμάς.Πρώτα επάνω, David Schwartz:

Είναι δυνατόν επειδή δεν υπάρχει πραγματικά αρχείο.Υπάρχει μόνο μια καταχώρηση καταλόγου με όνομα και κάτοχο.Η καταχώρηση του καταλόγου είναι λογικά διαφορετική από το αρχείο.Για παράδειγμα, το ίδιο αρχείο μπορεί να έχει περισσότερα από ένα ονόματα σε περισσότερους από έναν κατάλογο.

Δυστυχώς, ο όρος αρχείο δεν χρησιμοποιείται πάντα για να σημαίνει ακριβώς το ίδιο πράγμα.Αλλά η λογική μεγέθους αρχείου προέρχεται από το μοντέλο όπου μια καταχώρηση καταλόγου αποδίδει ένα αρχείο σε έναν κατάλογο, τότε τα ονόματα των αρχείων και τα σχετικά μεταδεδομένα αποθηκεύονται στον κατάλογο.

Ακολουθούμενη από την απάντηση από το Cort Ammon:

Η σημασιολογική σημασία του μεγέθους του αρχείου είναι διαφορετική από αυτή που χρησιμοποιείτε.

Υπάρχουν πολλά μεγέθη αρχείων που έχουν νόημα.Το πιο συνηθισμένο και αυτό που βλέπετε εδώ είναι ο αριθμός των byte στο αρχείο.Αν το αρχείο είναι κενό αρχείο κειμένου, ενδέχεται να περιέχει μηδενικά byte.Αυτός ο αριθμός είναι σημαντικός για τους προγραμματιστές γιατί συχνά πρέπει να ανοίξουμε ένα αρχείο, να διαβάσουμε όλα τα δεδομένα και να το κλείσουμε.Πρέπει να γνωρίζουμε πόσα byte θα υπάρχουν στον φάκελο, ώστε να μπορέσουμε να σχεδιάσουμε μπροστά.

Μια άλλη έννοια προκύπτει από τον τρόπο αποθήκευσης των δεδομένων από τα περισσότερα συστήματα αρχείων.Τα περισσότερα συστήματα αρχείων αποθηκεύουν δεδομένα σε μπλοκ.Για παράδειγμα, το σύστημα αρχείων μπορεί να αποθηκεύει δεδομένα σε μπλοκ των 64 kB, πράγμα που σημαίνει ότι ποτέ δεν θα διαθέσει τίποτα που δεν είναι ομοιόμορφο πολλαπλάσιο των 64 kB.Αυτό ακούγεται αναποτελεσματικό, αλλά μπορεί να κάνει τη λογιστική αρκετά απλούστερη και συχνά πιο απλή σημαίνει ταχύτερη.

Ένα τρίτο νόημα, το οποίο τραβάτε, θα είναι ο πραγματικός αριθμός των bits που απαιτούνται στον σκληρό δίσκο για να περιγράψει την παρουσία ενός αρχείου.Αυτό περιλαμβάνει πληροφορίες που αποθηκεύονται συνήθως ξεχωριστά από το αρχείο.Για παράδειγμα, στο Linux, η έννοια του ονόματος αρχείου αποθηκεύεται στο inode για τον κατάλογο που περιέχει το αρχείο.[ Με βάση τις παρατηρήσεις από άλλα σχόλια, αυτό αποθηκεύεται( τεχνικά) στα δεδομένα του καταλόγου.Όταν έγραψα αυτό, σκέφτηκα την περίπτωση μικρού καταλόγου.Δεδομένα μικρότερα από 156 byte μπορούν να αποθηκευτούν απευθείας στο inode. ] Αυτό δεν είναι μια συνήθης έννοια, διότι είναι εξαιρετικά δύσκολο να προσδιοριστεί χωρίς να γνωρίζετε τις εξαιρετικά βαθιές εσωτερικές λειτουργίες του συστήματος αρχείων σας( όπως ο υπολογισμός του χώρου που απαιτείται για την αποθήκευση όλων των δικαιωμάτων στο αρχείο).Ωστόσο, αν έχετε 1.000.000 byte σκληρό δίσκο και θέλετε να μάθετε πόσο μεγάλο ενός αρχείου μπορεί να χωρέσει σε αυτό το σκληρό δίσκο, αυτό θα είναι ένα πολύ σημαντικό νόημα για εσάς!

Έχετε κάτι να προσθέσετε στην εξήγηση;Απενεργοποιήστε τα σχόλια.Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange;Δείτε το πλήρες νήμα συζήτησης εδώ.