العودة إلى الدورة

إدخال وإخراج الملفات الجزء 1: التدفقات وأنماط الملفات

لغة C: من الصفر إلى الاحتراف - الدليل الشامل للمبتدئين

الدرس 47: إدخال وإخراج الملفات الجزء 1: التدفقات وأنماط الملفات

تسمح عمليات إدخال/إخراج الملفات (I/O) للبرامج بقراءة البيانات من أو كتابة البيانات إلى وحدة التخزين الدائمة (الملفات). جميع دوال التعامل مع الملفات في C معرفة في <stdio.h>.

تدفقات الملفات (File Streams)

تتعامل لغة C مع عمليات الملفات باستخدام مفهوم التدفق (stream). التدفق هو تسلسل من البايتات.

  1. التدفقات القياسية: يتم فتحها تلقائياً عند بدء البرنامج:

    • stdin (الإدخال القياسي: لوحة المفاتيح)
    • stdout (الإخراج القياسي: الكونسول)
    • stderr (الخطأ القياسي: الكونسول لرسائل الخطأ)
  2. تدفق الملف: للعمل مع ملف، نستخدم هيكل FILE ، الذي يحمل معلومات حول الملف (الموقع، التخزين المؤقت، الموضع).

c FILE *file_ptr; // مؤشر لهيكل FILE

أنماط فتح الملفات (File Opening Modes)

عند فتح ملف، يجب تحديد الغرض (النمط):

النمطالوصفالإجراء إذا كان الملف موجوداًالإجراء إذا كان الملف غير موجود
rنمط القراءةيفتح للقراءةيعيد NULL (خطأ)
wنمط الكتابةيمسح المحتوى (truncates)ينشئ ملفاً جديداً
aنمط الإضافةيكتب في نهاية الملفينشئ ملفاً جديداً
r+قراءة/تحديثيفتح للقراءة والكتابةيعيد NULL
w+كتابة/تحديثيمسح المحتوى، يفتح للقراءة والكتابةينشئ ملفاً جديداً، يفتح للقراءة والكتابة
a+إضافة/تحديثيفتح للقراءة والكتابة، الكتابة تضيف للنهايةينشئ ملفاً جديداً، يفتح للقراءة والكتابة