קבצים ב-C

itay_k

New member
קבצים ב-C

שלום, יש לי שאלה קצת בסיסית. אם אני רץ על קובץ, מגיע לאמצע הקובץ למשל וכעת אני רוצה למחוק את כל תוכן המשך הקובץ, מה עלי לעשות? רק fclose? משום מה, שנסיתי לעשות fclose (אם או בלי כתיבת EOF) באמצע הקובץ, לפעמים זה עבד ולפעמים לא (ז"א הוא לא מחק את המשך הקובץ). האם אין ברירה מאשר להעתיק את תוכן הקובץ, למחוק אותו וליצור אותו מחדש? תודה מראש, איתי.
 

IdanR

New member
פתרון ..

אתה צריך לפתוח את הקובץ לפתיחה, לקרוא ממנו רק את מה שאתה רוצה לשמור, לסגור ... ואז לפתוח שוב פעם לכתיבה, התוכן של הקובץ ימחק - ותוכל לשמור רק את הנתונים שאתה רוצה שיהיו בתוכו.
 

eyalbd

New member
פתרון נוסף: chsize

יש פונקציה כזו. התהליך הוא כזה (בהנחה שאתה עובד עם *FILE) א. מצא את המקום שלך בקובץ ע"י ftell ב. מצא file descriptor ע"י fileno ג. קרא לפונקציה chsize עם ה descriptor מ (ב) ועם גודל רצוי מ (א)
 
למעלה