قراءة (استدعاء النظام)
في أنظمة التشغيل الحديثة المتوافقة مع معيار POSIX ، يستخدم البرنامج الذي يحتاج إلى الوصول إلى بيانات من ملف مخزن في نظام الملفات استدعاء النظام read . يتم تحديد الملف بواسطة مُعرِّف الملف الذي يُستَحصَل عليه عادةً من استدعاء سابق للدالة open . يقرأ هذا الاستدعاء البيانات بالبايتات ، ويُحدِّد المُستدعي عددها، من الملف ويخزنها في مخزن مؤقت يُوفِّره البرنامج المُستدعي.
تأخذ دالة استدعاء النظام للقراءة ثلاثة وسائط:
- مُعرِّف الملف.
- المخزن المؤقت الذي سيتم فيه تخزين البيانات المقروءة.
- عدد البايتات المراد قراءتها من الملف.
استخدام POSIX
تُوحّد مواصفات POSIX واجهة استدعاء النظام للقراءة. تُقرأ البيانات من ملف عن طريق استدعاء دالة القراءة:
ssize_t read ( int fd , void * buf , size_t count );القيمة المُعادة هي عدد البايتات المقروءة (الصفر يشير إلى نهاية الملف )، ويتم تحريك موضع الملف بمقدار هذا العدد. لا يُعدّ خطأً إذا كان هذا العدد أصغر من عدد البايتات المطلوبة؛ فقد يحدث هذا، على سبيل المثال، لأن عدد البايتات المتاحة فعليًا أقل في الوقت الحالي (ربما لأننا كنا قريبين من نهاية الملف، أو لأننا نقرأ من قناة ، أو من طرفية )، أو لأن استدعاء النظام قد قاطعته إشارة .
بدلاً من ذلك، يتم إرجاع -1 عند حدوث خطأ، وفي هذه الحالة يتم تعيين errno بشكل مناسب، كما يتم تركه غير محدد ما إذا كان موضع الملف (إن وجد) يتغير.
انظر أيضاً
مراجع
روابط خارجية
C_Programming/C_Reference/stdio.h/fread في ويكي الكتب
- مكتبة C POSIX
- استدعاءات النظام
