الدرس 48: إدخال وإخراج الملفات الجزء 2: فتح وإغلاق الملفات
فتح ملف: fopen()
تحاول دالة fopen() فتح ملف وربط تدفق به. تعيد مؤشر FILE * إذا نجحت، أو NULL في حالة الفشل.
القاعدة: FILE *fopen(const char *filename, const char *mode);
مثال: فتح ملف للكتابة
c #include <stdio.h>
int main() { FILE *fp; char filename[] = "output.txt";
// محاولة الفتح في نمط الكتابة ('w')
fp = fopen(filename, "w");
if (fp == NULL) {
perror("خطأ في فتح الملف"); // يساعد في عرض رسالة خطأ النظام
return 1; // إشارة لوقوع خطأ
}
printf("تم فتح الملف '%s' بنجاح.\n", filename);
// ... عمليات على الملف ...
return 0;
}
إغلاق ملف: fclose()
يؤدي إغلاق الملف إلى فصل التدفق عن الملف، مما يضمن كتابة أي بيانات في التخزين المؤقت إلى القرص وتحرير ذاكرة هيكل FILE . هذا ضروري لمنع فقدان البيانات.
القاعدة: int fclose(FILE *stream); (تعيد 0 عند النجاح، و EOF عند الفشل).
c if (fp != NULL) { if (fclose(fp) == 0) { printf("تم إغلاق الملف بنجاح.\n"); } else { printf("خطأ في إغلاق الملف.\n"); } }
قاعدة: تحقق دائماً من القيمة NULL بعد fopen() واستدعِ دائماً fclose() عند الانتهاء من الملف.