هل يمكن تسمية Fwrite & Fclose بشكل غير طبيعي من موضوعين لواصف الملف نفسه؟
سؤال
ماذا سوف يحدث إذا fwrite
& fclose
يتم استدعاؤها بالتوازي من موضوعين لنفس واصف الملف؟
المحلول
fwrite
و fclose
تعمل على FILE
بنية البيانات. نظرًا لأن هذه هيكل بيانات كارق يتم تخزينه أكثر من مجرد واصف الملف ، فإن الإجابة هي أشياء سيئة.
لا تفعل هذا إلا إذا كنت تضمن التشغيل الذري باستخدام Mutexes.
نصائح أخرى
يتطلب Posix FILE
الوصول لتكون آمنة الخيط ، ولكن منذ ذلك الحين fclose
يغلق الملف ويؤدي إلى إبطال المؤشر ، لا توجد طريقة (أي أنها ليست مجرد مشكلة مواصف fclose
عندما يكون موضوع آخر هو الوصول إلى FILE
ساكن. ستحتاج إلى القيام بالقفل الخاص بك.
لمثل هذا الظرف ، تحتاج إلى تحديد أولويات أساليبك. يمكنك التحكم في الطرق باستخدام "متزامن".
لا تنتمي إلى StackOverflow