17Aug

لماذا لا يمكنني تغيير في استخدام الملفات على ويندوز مثل يمكنني على لينكس و أوس X؟

click fraud protection


عندما تستخدم نظامي التشغيل لينوكس و أوس X، لن يمنعك نظام التشغيل من حذف ملف قيد الاستخدام حاليا على ويندوز، فسيتم منعك صراحة من القيام بذلك.ما يعطي؟لماذا يمكنك تحرير وحذف الملفات قيد الاستخدام على أنظمة يونيكس المشتقة ولكن ليس ويندوز؟

سؤال اليوم & أمب؛تأتي جلسة الجواب إلينا من باب المجاملة، وهو قسم فرعي من "ستاك إكسهانج"، وهو عبارة عن مجموعة من المواقع على شبكة الإنترنت.

السؤال

قارئ المستخدم الفائق the.midget يريد أن يعرف لماذا لينكس و ويندوز التعامل مع الملفات في الاستخدام بشكل مختلف:

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

ما الذي يحدث خلف الكواليس ومنعه من حذف الأشياء بشكل متعمد في ويندوز كما هو الحال في لينكس؟

يساهم المساهمون في عملية وساطة

بعض الضوء على حالة the.midget.أما إذا كنت تفتح أو تنفذ ملفا في نظام التشغيل ويندوز، فإن ويندوز يقفل الملف في مكانه( هذا هو تبسيط، ولكن عادة ما يكون صحيحا.) لا يمكن حذف الملف الذي يتم تأمينه بواسطة عملية حتى يتم تحريره.هذا هو السبب في كل ويندوز لديه لتحديث نفسه تحتاج إلى إعادة التشغيل حتى تصبح نافذة المفعول.

instagram viewer

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

يتوسع ديفيد شوارتز على الفكرة ويسلط الضوء على الكيفية التي ينبغي أن تكون الأمور مثالية وكيفية تنفيذها عمليا:

يتم افتراضيات ويندوز إلى تأمين الملفات الإلزامي التلقائي.أونيكسس الافتراضي إلى دليل، ملف التعاونية تأمين.في كلتا الحالتين، يمكن تجاوز الافتراضات، ولكن في كلتا الحالتين هي عادة ليست كذلك.

يستخدم الكثير من رمز ويندوز القديم أبي C / C ++( وظائف مثل فوبين) بدلا من أبي الأصلي( وظائف مثل كراتيفيل).و C / C ++ أبي يعطيك أي وسيلة لتحديد كيفية تأمين الإلزامي سوف تعمل، حتى تحصل على الافتراضات.يميل "وضع المشاركة" الافتراضي إلى حظر العمليات "المتضاربة".إذا فتحت ملفا للكتابة، يفترض أن تتعارض الكتابة، حتى لو لم تكتب في الواقع إلى الملف.قبل إعادة تسمية.

، وهنا حيث يزداد سوءا.بخلاف فتح للقراءة أو الكتابة، و C / C ++ أبي يوفر أي وسيلة لتحديد ما تنوي القيام به مع الملف.لذلك أبي يجب أن نفترض كنت تسير لأداء أي عملية قانونية.وبما أن القفل إلزامي، فسيتم رفض فتح يسمح بعملية متضاربة، حتى لو لم تكن المدونة تهدف أبدا إلى أداء العملية المتضاربة ولكن كانت مجرد فتح الملف لغرض آخر.

حتى إذا كان الكود يستخدم C / C ++ أبي، أو يستخدم أبي الأصلي دون التفكير بشكل خاص في هذه القضايا، وسوف ينتهي منع مجموعة الحد الأقصى من العمليات الممكنة لكل ملف يفتحون وغير قادر على فتح ملف ما لم كل عملية ممكنةفإنها يمكن أن تؤدي على ذلك فتحت مرة واحدة هو أونكونفليكد.

في رأيي، فإن طريقة ويندوز تعمل أفضل بكثير من طريقة أونيكس إذا اختار كل برنامج وسائط سهمها وفتح أوضاع بحكمة ومعالجة الحالات الفشل بشكل صحيح.إلا أن طريقة أونيكس تعمل بشكل أفضل إذا لم يكلف الرمز عناء التفكير في هذه القضايا.لسوء الحظ، فإن C / C ++ أبي الأساسية لا ترسم بشكل جيد على أبي ملف ويندوز بطريقة تعالج أوضاع المشاركة وتضارب فتح بشكل جيد.وبالتالي فإن النتيجة الصافية هي فوضوي بعض الشيء.

هناك لديك: نهجين مختلفين لمعالجة ملف العائد اثنين من نتائج مختلفة.

هل لديك شيء لإضافة إلى التفسير؟الصوت قبالة في التعليقات.هل ترغب في قراءة المزيد من الإجابات من مستخدمي إكساك إكسهانج؟تحقق من موضوع المناقشة الكامل هنا.