פורסם 2008 בינואר 2017 שנים היי, אני צריכה לכתוב שגרה עם קובץ בינארי ולהחזיר: אם הקובץ לא נמצא\ אם הכל פועל כשורה\ אם הקובץ ריק. איך אני בודקת את זה? אפשר לבדוק את זה עם errno? באותה הזדמנות אני אשמח אם מישהו יוכל להסביר לי יותר על errno. תודה לעונים, זה ממש דחוף לי :s05:
פורסם 2008 בינואר 2117 שנים errno הוא משתנה גלובאלי שמכיל מספר המייצג את השגיאה האחרונה שקרתה בתוכנית פחות או יותר.הקובץ errno.h מכיל את הקבועים האפשריים שהמשתנה הזה יכול להכיל. הנה רשימה של הקבועים שיש:http://www.opengroup.org/onlinepubs/009695399/basedefs/errno.h.htmlהפונקציה perror מדפיסה הודעת שגיאה יפה לפי הערך שנמצא ב-errnohttp://www.cppreference.com/stdio/perror.htmlהתרגיל שקיבלת (אני מניח שזה תרגיל) דורש שתשתמשי ב-errno ותבדקי שהקובץ לא נמצא, או שהוא פשוט דורש לבדוק אם התכנית הצליחה לפתוח את הקובץ או לא?
פורסם 2008 בינואר 2217 שנים מחבר התרגיל דורש שאני אבדוק האם הקובץ נמצא והאם הוא ריק. אני מניחה שאני אמורה לבדוק את זה בעזרת errno אלא אם כן יש לך דרך אחרת... ? הצלחתי כבר לבדוק אם הקובץ נמצא בעזרת הקבוע EEXIST שבerrno, אבל אני לא יודעת איך לבדוק שהקובץ ריק
פורסם 2008 בינואר 2217 שנים EEXIST עובד לך? למיטב ידיעתי זה מספר שגיאה שמייצג שאת מנסה לכתוב לקובץ קיים (ולא שאת פותחת קובץ קיים לקריאה).קוד השגיאה במקרה שאת מנסה לפתוח קובץ שלא קיים הוא ENOENT.העניין הוא שיכול להיות שהקובץ קיים אבל אי אפשר לפתוח אותו לקריאה (נניח, אם הקובץ מוגן ע"י מערכת ההפעלה או שהוא כרגע בשימוש ע"י תכנית אחרת), והשאלה היא איך התכנית צריכה להתייחס למקרה כזה.לבדוק אם הקובץ ריק יש רק דרך אחת - לנסות לקרוא ממנו. אם אי אפשר לקרוא ממנו אפילו תו אחד, זה אומר שהקובץ ריק.
פורסם 2008 בינואר 2417 שנים מחבר בקשר לבדיקה אם הקובץ ריק - אני מנסה לקרוא תו => ((fsFile.read((char*) &cChar, size0f(char ועכשיו איך אני בודקת אם התו לא נקרא..? ד"א תודה על העזרה שניצל
פורסם 2008 בינואר 2417 שנים יותר פשוט להשתמש בפונקציה get, שקוראת תו אחד ומחזירה אותו, או eof אם אין מה לקרוא.חוץ מזה, את יכולה לבדוק את המצב של הסטרים ע"י כל מיני פונקציות כגון good,bad,eof,failhttp://www.cppreference.com/cppio/eof.html
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.