الدرس 47: إدخال وإخراج الملفات الجزء 1: التدفقات وأنماط الملفات
تسمح عمليات إدخال/إخراج الملفات (I/O) للبرامج بقراءة البيانات من أو كتابة البيانات إلى وحدة التخزين الدائمة (الملفات). جميع دوال التعامل مع الملفات في C معرفة في <stdio.h>.
تدفقات الملفات (File Streams)
تتعامل لغة C مع عمليات الملفات باستخدام مفهوم التدفق (stream). التدفق هو تسلسل من البايتات.
-
التدفقات القياسية: يتم فتحها تلقائياً عند بدء البرنامج:
stdin(الإدخال القياسي: لوحة المفاتيح)stdout(الإخراج القياسي: الكونسول)stderr(الخطأ القياسي: الكونسول لرسائل الخطأ)
-
تدفق الملف: للعمل مع ملف، نستخدم هيكل
FILE، الذي يحمل معلومات حول الملف (الموقع، التخزين المؤقت، الموضع).
c FILE *file_ptr; // مؤشر لهيكل FILE
أنماط فتح الملفات (File Opening Modes)
عند فتح ملف، يجب تحديد الغرض (النمط):
| النمط | الوصف | الإجراء إذا كان الملف موجوداً | الإجراء إذا كان الملف غير موجود |
|---|---|---|---|
r | نمط القراءة | يفتح للقراءة | يعيد NULL (خطأ) |
w | نمط الكتابة | يمسح المحتوى (truncates) | ينشئ ملفاً جديداً |
a | نمط الإضافة | يكتب في نهاية الملف | ينشئ ملفاً جديداً |
r+ | قراءة/تحديث | يفتح للقراءة والكتابة | يعيد NULL |
w+ | كتابة/تحديث | يمسح المحتوى، يفتح للقراءة والكتابة | ينشئ ملفاً جديداً، يفتح للقراءة والكتابة |
a+ | إضافة/تحديث | يفتح للقراءة والكتابة، الكتابة تضيف للنهاية | ينشئ ملفاً جديداً، يفتح للقراءة والكتابة |