לדלג לתוכן

4.3 - קבצים - תרגול

תרגול - עבודה עם קבצים ב-libc

תרגיל 1 - כתיבה לקובץ

  1. כתבו תוכנית ש:

  2. פותחת קובץ בשם output.txt לכתיבה ("w").

  3. כותבת לתוכו שלוש שורות שונות בעזרת fprintf.

  4. סוגרת את הקובץ.

תרגיל 2 - קריאה מקובץ

  1. כתבו תוכנית ש:

  2. פותחת קובץ בשם input.txt לקריאה ("r").

  3. קוראת בעזרת fgets שורה אחת בכל פעם, ומדפיסה אותה למסך עד סוף הקובץ.

  4. סוגרת את הקובץ.

שימו לב: ודאו שהקובץ input.txt קיים לפני הריצה, או שתטפלו במקרה שהוא לא קיים (בדקו אם fopen החזירה NULL).

תרגיל 3 - העתקת תוכן של קובץ

  1. כתבו תוכנית ש:

  2. פותחת קובץ בשם input.bin לקריאה בינארית ("rb")

  3. פותחת קובץ בשם copy.bin לכתיבה בינארית ("wb")

  4. קוראת את התוכן ב-chunks של 64 בתים עם fread וכותבת ליעד עם fwrite

  5. סוגרת את שני הקבצים

תרגיל 4 - קריאה למיקום מסוים בקובץ

  1. כתבו תוכנית ש:

  2. פותחת קובץ לקריאה בינארית.

  3. עושה fseek ל-10 בתים מתחילת הקובץ (SEEK_SET).

  4. קוראת 5 תווים ומדפיסה אותם כ-char-ים עם putchar.

  5. מדפיסה את המיקום שבו הפוינטר נמצא אחרי הקריאה בעזרת ftell.

תרגיל 5

  • הסבירו במילים שלכם מה הוא file descriptor (fd)
  • מה הוא fd מספר 0 1 ו- 2?
  • איזה פיצ'רים יש בפונקציות הקבצים שמתחילות באות f, (בfile pointer-ים) שאין בפונקציות הfile descriptor? הסבירו אותן.