כיצד יכול גודל הקובץ להיות אפס?
כולנו מדי פעם לרוץ על "מצב" על המחשבים שלנו זה משאיר אותנו לגמרי מבולבל, כגון קובץ בעל גודל של אפס, אבל איך זה אפשרי בכלל? היום SuperUser Q & A פוסט יש את התשובות לשאלה של מבולבל הקורא.
מפגש השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה מחודשת של Stack Exchange, קיבוץ מונחה על ידי הקהילה של אתרי אינטרנט של Q & A.
השאלה
קורא SuperUser יוג'ין S רוצה לדעת איך גודל הקובץ יכול להיות אפס:
זה משהו שאני נתקלתי ולא יכולתי לחשוב על הסבר הולם. אם אני יוצר ריק *. קובץ txt במחשב שלי ולאחר מכן להסתכל על גודלו, זה מראה גודל של אפס. כיצד זה אפשרי? כלומר, גם אם הקובץ עצמו ריק, הוא עדיין חייב להיות בגודל כלשהו (אפילו אם הוא רק כדי לאחסן את שמו שלו). איך אפשר להסביר את זה?
איך זה אפשרי עבור קובץ יש גודל של אפס?
התשובה
לתורמים סופר דיוור דוד שוורץ וקורט עמון יש את התשובה עבורנו. ראשית, דוד שוורץ:
זה אפשרי כי אין באמת קובץ. יש רק ערך במדריך עם שם ובעלים. ערך הספרייה שונה באופן הגיוני מהקובץ. לדוגמה, אותו קובץ יכול להכיל שם אחד או יותר מספריה אחת.
למרבה הצער, קובץ המונח לא תמיד משמש בדיוק אומר את אותו הדבר. אבל הלוגיקה בגודל הקובץ מגיעה מהמודל שבו ערך בספרייה מצרף קובץ לספרייה, ולאחר מכן שמות הקבצים ונתוני meta קשורים מאוחסנים בספריה.
בעקבות תשובתו של קורט עמון:
המשמעות הסמנטית של גודל הקובץ שונה מזו שבה אתה משתמש.
ישנם גדלי קבצים רבים אשר משמעות. הנפוץ ביותר, ואת אחד אתה רואה כאן, הוא מספר בתים בקובץ. אם הקובץ הוא קובץ טקסט ריק, הוא עשוי להכיל אפס בייטים. מספר זה חשוב למתכנתים, מכיוון שלעיתים קרובות עלינו לפתוח קובץ, לקרוא את כל הנתונים ולסגור אותו. אנחנו צריכים לדעת כמה בתים של נתונים יהיו בקובץ כדי שנוכל לתכנן מראש.
משמעות נוספת נובעת מהדרך שבה רוב מערכות הקבצים מאחסנות נתונים. רוב מערכות הקבצים מאחסנות נתונים בבלוקים. לדוגמה, מערכת הקבצים עשויה לאחסן נתונים ב- 64 kB בלוקים, כלומר לעולם לא להקצות דבר שאינו מספר כפול של 64 kB. זה נשמע לא יעיל, אבל זה יכול לעשות הנהלת חשבונות די פשוט יותר, ולעתים קרובות פשוט יותר מהר.
משמעות שלישית, שבה אתה מושך, יהיה המספר בפועל של סיביות נדרש על הכונן הקשיח כדי לתאר את נוכחותו של קובץ. זה כולל מידע המאוחסן בדרך כלל בנפרד מהקובץ. לדוגמה, ב- Linux, המושג שם הקובץ מאוחסן ב- inode עבור הספריה המכילה את הקובץ. [בהתבסס על קלט הערות אחרות, זה (טכנית) מאוחסנים בנתונים של הספרייה. כשכתבתי את זה חשבתי על תיק הספרייה הקטנה. נתונים קטנים מ 156 בתים ניתן לאחסן ישירות inode.] זה לא דבר נפוץ כי זה קשה מאוד לקבוע מבלי לדעת את העבודה הפנימי עמוק מאוד של מערכת הקבצים שלך (כגון חשבונאות עבור שטח צורך לאחסן את כל ההרשאות על הקובץ). עם זאת, אם יש לך כונן קשיח של 1,000,000 בתים ואתה רוצה לדעת כמה גדול של קובץ יכול להתאים על הכונן הקשיח, זה יהיה משמעות חשובה מאוד לך!
יש לך משהו להוסיף להסבר? נשמע את ההערות. רוצה לקרוא תשובות נוספות ממשתמשים אחרים בעלי ידע טכנולוגי מתמצא? בדוק את נושא הדיון המלא כאן.