هل يمكن تسمية Fwrite & Fclose بشكل غير طبيعي من موضوعين لواصف الملف نفسه؟

StackOverflow https://stackoverflow.com/questions/3685128

  •  02-10-2019
  •  | 
  •  

سؤال

ماذا سوف يحدث إذا fwrite & fclose يتم استدعاؤها بالتوازي من موضوعين لنفس واصف الملف؟

هل كانت مفيدة؟

المحلول

fwrite و fclose تعمل على FILE بنية البيانات. نظرًا لأن هذه هيكل بيانات كارق يتم تخزينه أكثر من مجرد واصف الملف ، فإن الإجابة هي أشياء سيئة.

لا تفعل هذا إلا إذا كنت تضمن التشغيل الذري باستخدام Mutexes.

نصائح أخرى

يتطلب Posix FILE الوصول لتكون آمنة الخيط ، ولكن منذ ذلك الحين fclose يغلق الملف ويؤدي إلى إبطال المؤشر ، لا توجد طريقة (أي أنها ليست مجرد مشكلة مواصف fclose عندما يكون موضوع آخر هو الوصول إلى FILE ساكن. ستحتاج إلى القيام بالقفل الخاص بك.

لمثل هذا الظرف ، تحتاج إلى تحديد أولويات أساليبك. يمكنك التحكم في الطرق باستخدام "متزامن".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top