أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

INFO: fflush() & flushall() Not كتابة البيانات مباشرة إلى القرص

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية66052
إخلاء مسؤولية من محتوى قديم في قاعدة المعارف
عن تقديم الدعم التقني لهاو لذلك تظهر هذه المقالة كما هي و لن يتم تحديثها Microsoft تمت كتابة هذه المقالة بخصوص منتجات توقفت
الموجز
عدم كتابة دالتي fflush() و flushall() في مكتبة وقت تشغيل C. تغييرات الملف مباشرة إلى القرص. هذه الدالات قاموا بمسح المخازن المؤقتة الملف يوفرها المكتبة; أنها بمسح المخازن المؤقتة توفر MS-DOS أو OS/2 أو أنظمة التشغيل Windows NT مستوى النظام. على سبيل المثال، إذا أحد تطبيقات باستدعاء fflush() ولكن لا يكتب MS-DOS المخازن المؤقتة الخاصة به إلى القرص قبل نظام التعطل الكلي (أو المكافئ الحدث) ، قد لا يزال يتم فقدان المعلومات. لمعالجة هذا الموقف في MS-DOS استخدم الدالة _commit() بعد استدعاء fflush() أو fflushall(). يؤدي _commit() الاتصال نظام التشغيل بمسح المخزن المؤقت المقترنة مؤشر ملف القرص.

يوفر نظام التشغيل OS/2 جهازي دالات منفصلة استنادًا إلى الإصدار المثبت من OS/2. 16-بت OS/2 (الإصدارات 1.x) ، استخدم الدالة DosBufReset(). في 32-بت OS/2 (الإصدار 2.0) ، استخدم الدالة DosResetBuffer().

يوفر نظام التشغيل Windows NT FlushFileBuffers() API WIN32. تضمين دالة _commit() مع مكالمات CRT Edition Visual C++ 32بت FlushFileBuffers لكتابة بيانات مخزّنة إلى القرص.

يقدم Microsoft C/C++ الإصدار 7.0 خيار الوضع "c" للدالة fopen(). عند تطبيق فتح ملف تحديد الوضع "c" مكتبة وقت تشغيل يكتب محتويات المخزن المؤقت للملف إلى القرص عندما التطبيق باستدعاء الدالة fflush() أو _flushall(). خيار الوضع "C" هو ملحق Microsoft ولا يعد جزءاً من مقياس ANSI fopen().

لتغيير السلوك الافتراضي من الدالات fflush() و _flushall() ربط التطبيق الخاص بك مع ملف COMMODE.OBJ الموفرة من قبل المنتجات المسردة في بداية هذه المقالة. تغيير COMMODE.OBJ إشارة الالتزام العمومي بحيث استدعاء fflush() أو تحويل _flushall() المخزن المؤقت للملف إلى القرص. يخبر هذه العلامة fflush() لاستدعاء _commit() بمسح الملف مستوى منخفض عند مسح الدفق و _commit() في _dos_commit() المكالمات تشغيل ملف مستوى MS-DOS. بشكل افتراضي مسح دفق لا بمسح ذات المستوى المنخفض ملفات مستوى MS-DOS.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 66052 - آخر مراجعة: 12/12/2003 14:52:41 - المراجعة: 3.0

The C Run-Time (CRT)

  • kbmt kbcrt kbinfo KB66052 KbMtar
تعليقات
/html>=">racker.init(); c.gif?DI=4050&did=1&t=">