أهلا ومرحبا بكم مرة أخرى.
في هذه المحاضرة أريد تحدث عن الوصول إلى الملفات.
لذا فإن الملفات الموجودة على القرص لها اسم و يتم تحديد قواعد تسمية الملفات
بواسطة نظام التشغيل الخاص بك.
قد تضطر إلى التكيف الأسماء اعتمادًا على نظام التشغيل
الذي يعمل به برنامجك.
إذا كان برنامجك يعمل على windows مقارنةً بـ Linux ، تختلف
بنية الدليل الفعلية أيضًا.
لذلك إذا كنت تستخدم القطع الأمامية أو مائلة للخلف ، عليك
تعديل هذا في برنامجك.
ولكن بالنسبة للجزء الأكبر ، فإن الأسماء نسبيًا لها نفس
قواعد التسمية وما إلى ذلك.
ولكن هناك فرصة لذلك عليك تعديله.
برنامج يشير إلى ملف من خلال مؤشر ملف أو مؤشر تدفق.
نظرًا لأنه يعمل على أكثر من مجرد ملف ملف ، يمكنك
في الواقع ، ذكرنا هذا سابقًا ، لكن المعيار تعمل وظائف io على أي جهاز.
لذلك يسمى مؤشر الملف ، ولكن يجب الإشارة إليه حقًا على
أنه مؤشر تدفق.
تقوم بإقران مؤشر ملف بملف برمجيًا عند تشغيل
البرنامج.
إذن ما تفعله في النهاية هو أنك ستفعله قم بإنشاء مؤشر
داخل البرنامج الخاص بك ، سيكون من نوع file و سيمثل هذا الملف عندما تقرأه
وتكتبه.
نستخدم مؤشرات الملفات هذه كملف طريقة أكثر فاعلية للإشارة فعليًا إلى الملفات بدلاً من
ذلك إلى الاسم لأن الاسم يمكن أن يكون مختلفًا
بعض الشيء.
سوف يمثل المؤشر ما يشير إليه في الواقع.
ويمكنك إعادة استخدام المؤشرات ، للإشارة إلى ملفات مختلفة
في مناسبات مختلفة ، والتي ، مرة أخرى ، كان يمثله اسم الملف.
يشير مؤشر الملف إلى هيكل اكتب الملف الذي يمثل دفقًا.
يمكنك في الواقع الذهاب والنظر في ملف هيكلة لرؤية
كل ما بداخله.
لكنها تحتوي على معلومات مثل سواء كنت تريد قراءة الملف
أو كتابته أو تحديثه ، فإن ملف عنوان المخزن المؤقت في الذاكرة حيث
تقوم بتخزين البيانات ، أ مؤشر إلى الموضع الحالي في
الملف للعملية التالية.
ذكرنا الموقف هو مهم لأن هذا هو المكان الذي
تقوم فيه بالكتابة والقراءة.
ويمكنك ضبط كل هذه المعلومات داخل الهيكل باستخدام عمليات
ملف الإدخال والإخراج.
عمليات ملف الإخراج المدخلات ، عندما تفتح ملفًا ، فإنه سيحدد في الواقع
ما إذا كان تريد القراءة أو الكتابة.
وبعد ذلك يمكنك أيضًا تغيير ملف الموقف الحالي باستخدام طرق أخرى
مثل البحث وما إلى ذلك التي سنتحدث عنها.
إذا كنت تريد استخدام عدة ملفات في وقت واحد في برنامجك
، عليك إنشاء ملف مؤشر ملف لكل ملف.
يمكنك فقط إعادة استخدام الملف مؤشر إذا كنت تقرأ وتكتب في
أوقات مختلفة.
هناك حد لعدد فتح يمكن أن يكون لديك في وقت واحد مفتوح.
يمكنك إلقاء نظرة على الحد في IO القياسي ، هناك
ثابت محدد للفتح كحد أقصى يعتمد مرة أخرى على نظام التشغيل الذي
تعمل عليه.
لكنك عادة لا تريد أن تخلق وافتح الكثير من الملفات مرة واحدة.
كتابة وقراءة الملفات عملية مكلفة لأنك تكتب على
القرص الصلب.
انها ليست بالسرعة الكتابة الذاكرة ، لذلك يستغرق
الأمر وقتًا ويمكن أن يتسبب في حدوث برنامجك لتكون أقل استجابة لذلك.
لا تريد أن يكون لديك 10 يتم فتح الملفات والكتابة
في 10 ملفات في نفس الوقت.
لفتح ملف ، هذا من شأنه تكون الخطوة الأولى التي تقوم
بها قبل القراءة والكتابة.
لذلك تريد ربط ملف اسم ملف خارجي مع مؤشر
نهائي كامل من خلال عملية يشار إليه بفتح الملف.
الطريقة التي تفتح بها ملفًا و انظر ما هو استدعاء f وظيفة مفتوحة.
هذا سيعيد الملف مؤشر يمكنك استخدامه بعد
ذلك للقراءة والكتابة.
ومرة أخرى ، يكون مؤشر الملف هو سوف يشير إلى ملف
خارجي معين موجود على القرص.
F فتح سيستغرق اسم الملف.
الفتح هو ما عليك القيام به قبل القيام بأي قراءة / كتابة.
عادة ما تكون هذه أول عملية لك.
وكما هو الحال مع معظم هذه الوظائف ، تم تعريفهم جميعًا في Standardio. ح.
هنا التعريف من الدعوة المفتوحة.
سترى أن العودة القيمة هي مؤشر ملف ، كل الأحرف
الكبيرة ، بنية الملف.
لذلك كل ملف caps.
ستلاحظ بعد ذلك أن الأمر يتطلب ملف بعض المعلمات ، يأخذ
اسمًا ووضعًا ولا تقلق بشأن ذلك تقييد هذا فقط المزيد من عناصر C11.
انها حقا مجرد شخصية مؤشر إلى اسم ووضع.
الوسيطة الأولى للدالة هو مؤشر لسلسلة هذا هو
اسم الملف ، لذلك ستكون داخل علامتي اقتباس مزدوجتين.
يمكنك تحديد الاسم بشكل صريح أو استخدم مؤشر حرف يحتوي على عنوان
سلسلة الأحرف.
لذلك كل ما يقوله هذا هو أنك تستطيع قم بإنشاء سلسلة أحرف ووضعها على
نص حرفي ثم قم بتمرير السلسلة إلى الوظيفة أو يمكنك
إدخالها داخل المضاعفة يقتبس الحق داخل استدعاء الوظيفة.
يمكنك الحصول على اسم الملف من خلال سطر الأوامر كمدخلات
من المستخدم أيضًا أو تحديد إنه ثابت لبرنامجك.
إذا كان دائمًا نفس الملف أنت تقرأ الكتابة إلى والاسم
لا يهم ، أنت يمكن فقط الإشارة إليه على أنه ثابت.
إذا كان برنامجك أكثر مرونة ، فهو يمكن الحصول على مدخلات من المستخدم لتقول ما تريد قراءته
أو الكتابة إليه.
الحجة الثانية للفتح f الوظيفة عبارة عن سلسلة أحرف
تمثل وضع الملف.
هذا يحدد ما تريد القيام به مع الملف ، سواء كنت تريد قراءته
، سواء كنت تريد الكتابة إليه ذلك ، ما إذا كنت تريد إلحاقه به.
مواصفات وضع الملف هي سلسلة أحرف بين علامتي
اقتباس مزدوجتين ، وسأعرض لك بعض الأشخاص الذين سننتهي
باستخدامهم كثيرًا.
بافتراض فتح المكالمة ناجحًا ، فسيعيد مؤشر الملف
هذا ، بأحرف كبيرة.
وبعد ذلك يمكنك استخدام هذا الملف مؤشر لاستدعاء وظائف الإدخال / الإخراج
الأخرى في رأس الإدخال / الإخراج القياسي ، و سنستعرض هؤلاء عندما
ننتقل إلى القراءة والكتابة أو يمكنك أيضًا الحصول على الموضع
باستخدام هذا المؤشر لتغيير ملف موضع مكانك في الملف.
إذا كان الملف لا يمكن فتحه لسبب ما ، ستعود f open
إلى قيمة خالية.
إذن ما يعنيه هذا أمامك ابدأ في القيام بأي قراءة أو كتابة
، تأكد من أن المؤشر ليس كذلك يساوي فارغًا ، وآخر إذا تحقق.
ها هو الملف الأوضاع التي ذكرتها.
تذكر أن أوضاع الملفات هي ملفات المعلمة الثانية للنداء المفتوح f.
هذا ما يحدد ما لك تريد أن تفعل مع الملف ، وكل ذلك داخل
علامات الاقتباس المزدوجة.
لذلك إذا قمت بعمل w ، فهذا يعني أنك تريد لفتح الملف النصي للكتابة.
إذا قمت بعمل a ، فهذا يعني أنك تريد لفتح الملف النصي للإلحاق ، تكون جميع
عمليات الكتابة في نهاية الملف.
إذا قمت بإجراء r ، فإنه يفتح ملف نصي للقراءة.
إذا قمت بإضافة علامة الجمع إلى أي من هؤلاء ، سيتم إنشاء الملف بشكل أساسي
إذا لم يكن موجودًا.
لذلك إذا فتحت ملف w plus ، سيفتحه للتحديث وسيقتطع الملف إلى الصفر
إذا كان موجودًا أو يمكنه إنشاء ملف جديد إذا لم يكن
موجودًا.
مع الآخرين ، إنه سوف يكتب أو يقرأ أم والملف يجب أن
يكون موجودًا.
نفس الشيء مع علامة الجمع ، سيتم فتحه الأمر متروك للإلحاق ، للتحديث ، بنهاية
الملف الموجود أو قم بإنشاء الملف إذا لم يكن موجودًا.
وسوف ينفتح r plus الملف النصي للتحديث ، فلن يقوم
بإنشاء الملف هناك لأنها ستكون فارغة.
لذا فإن القراءة فقط من أجل القراءة والكتابة على حد سواء
عندما ترى r plus.
يختلف قليلا عن الآخر الإيجابيات حيث يتم إنشاء
الملف بالفعل لا وجود لها.
وضع الكتابة.
إذا كنت تريد الكتابة إلى ملف نصي موجود
باسم myfile. TXT ، ستنشئه مؤشر الملف الخاص بك ، كل الأحرف الاستهلالية.
اضبطه على قيمة خالية ، تهيئته فارغة.
وبعد ذلك ربما تخلق ملفك كمؤشر
حرف آخر ، myfile. TXT أو يمكنك ذلك قم بتمرير ذلك باعتباره المعلمة
الأولى ، ثم قل فقط وفتح.
F افتح اسم الملف ثم ث بالداخل علامات الاقتباس المزدوجة التي تفتح الملف للكتابة
وتقوم بإرجاع مؤشر الملف.
لهذا السبب لديك ملف p على يسار المهمة.
ثم تريد أن تحقق لجعل تأكد من أن ملف p لا يساوي null.
لأنه إذا كان فارغًا ، إذا كان فشل في الفتح
لأي سبب ربما كان اسم الملف خاطئًا أو لم تكن موجودة ، فلن تتمكن من الكتابة
إليها.
لذلك تريد دائمًا أن تفعل قم بفحص وطباعة بعض المعلومات
إذا لم يتم فتحها.
هذا الرمز سيفتح الملف وسيقوم بربط
الملف بالاسم myfile. مع TXT ملف المؤشرات الخاص بك ملف fp.
يعني الوضع w أنه يمكننا الكتابة فقط إلى الملف ، لا يمكنك القراءة منه.
إذا كان الملف بالاسم ملفي هذا النص غير موجود
، ستؤدي الدعوة إلى الفتح إلى إنشاء ملف ملف
بهذا الاسم ، وذلك لفتحه باستخدام الخيار w.
وهكذا عندما رأينا في السابق الأوضاع ، سيقوم w plus بإنشاء الملف إذا لم يكن موجودًا ولكنه
يقوم أيضًا باقتطاع الملف إلى الصفر.
هذا هو الاختلاف مع w.
سيخلق w إذا كان غير موجود ، لكنه لن
يقطعها إلى الصفر.
إذن هذه هي الطريقة القياسية لـ فتح الملفات ، باستخدام ذلك
w داخل علامات الاقتباس المزدوجة.
إذا قمت بتوفير اسم الملف فقط بدون أي تحديد للمسار
، وهذا ما فعلناه في هذا على سبيل المثال ، المسار
الذي تذكره هو اسم الدلائل.
إذا لم تقدم اسم ملف الدلائل ، سيفترض أن هذا الملف موجود
في الدليل الحالي أينما يتم تنفيذ البرنامج.
إذا كنت تريد بالفعل فتح ملف في مكان آخر
لا يوجد فيه بالفعل دليل البرامج ، ثم عليك تحديد
المسار بأكمله.
هذا يسمى المسار المطلق.
عندما لا تقدم أي مسار فهو عادة المسار النسبي ، يتعلق
بمكان تشغيل البرنامج.
لذلك يمكنك تحديد أي منهما ، المسار المطلق أو النسبي
، فقط تأكد من معرفة مكانه وأنت تفعل الشيء الصحيح.
عادةً ما تكون المسارات النسبية أفضل لأنه بعد ذلك لا يعتمد.
إذا كان شخص ما قد انتقل هذا الملف لا يعتمد على
المكان الذي تم نقله إليه.
ويمكنك في الواقع عمل ملف مسار نسبي ، ويمكنك الرجوع إلى
الدلائل السابقة ، بحيث يمكنك عمل نقطة slash وهذا متعلق بمكان
تشغيل البرنامج نعود بضعة دلائل.
عندما تستخدم المطلق المسار ، سيكون في الواقع شيء
مثل برنامج c القولون إذا كنت تستخدم نظام التشغيل windows.
وإذا تم نقل هذا الملف في أي وقت ، فإن ملف لن يتمكن البرنامج من فتحه.
لذلك عند فتح ملف للكتابة يتم قطع ارتباط الملف
إلى الصفر ، وسيكون الموضع في بداية أي بيانات موجودة
للعملية الأولى.
أي بيانات كانت في السابق ستفقد الكتابة
إلى الملف وستستبدل بأي عمليات كتابة.
هكذا مرة أخرى دون تقديم بالإضافة إلى ذلك ، فهذا يعني فقط أنه لا يمكنك
القراءة والكتابة.
هذا هو الكتابة فقط.
W هو الحق فقط.
W plus تعني أنه يمكنك القراءة والكتابة.
وضع الإلحاق.
إذا كنت تريد أن تضيف إلى ملف بدلا من الكتابة فوقه
يمكنك تحديد الوضع.
هذا حسب.
هذا يضع الملف في النهاية من أي بيانات مكتوبة مسبقًا.
إذا كان الملف غير موجود ، يخلق واحدة جديدة.
المثال هنا هو أنت فقط قم بتغيير المعلمة الثانية لتكون علامة
اقتباس مزدوجة داخلية سيضيف إلى نهاية ملفي. رسالة قصيرة.
ولا تنسى ذلك أنت يجب دائمًا اختبار قيمة الإرجاع
للقيمة الفارغة في كل مرة.
أنت دائما تريد أن تفعل إذا ملف p لا يساوي فارغة.
عند فتح ملف في إلحاق الوضع ، ستكون جميع عمليات الكتابة
في نهاية البيانات بتنسيق الملف في كل عملية كتابة.
يتم إلحاق كافة عمليات الكتابة البيانات إلى الملف ،
ولا يمكنك تحديث المحتويات الموجودة بتنسيق هذا الوضع ، كل شيء في النهاية.
في وضع القراءة يمكننا فتح فوق الملف لقراءة ملف.
نحن فقط نستخدم r داخل علامات الاقتباس المزدوجة.
هذا للقراءة فقط أنت لا يمكن الكتابة إلى الملف.
إذا كنت تفعل r plus ستفعل تكون قادرة على القراءة والكتابة.
لذلك يبدو مثل المكالمات الأخرى ، ما عليك سوى فتح f ، وتمرير
اسم الملف ثم r مرتين علامات الاقتباس التي تُرجع مؤشر ملف.
سنضع الملف أيضًا إلى بداية البيانات.
إذا كنت ستقرأ فقط الملف ، يجب أن يكون موجودًا بالفعل.
أنت لن تفعل قراءة ملف فارغ.
لذلك لا يوجد خيار للإنشاء الملف غير موجود ، سيكون
فارغًا أو ستعود سيكون ملف الخصم فارغًا.
إذا حاولت فتح ملف لـ قراءتها غير موجودة ،
ستعيد المؤشر الفارغ.
إذا كان موجودًا وفارغًا ، أنت فقط لن تعيد أي بيانات.
تريد دائمًا التحقق من قيمة العائد من و فتح.
مرة أخرى ، قراءة ذلك من أجل للمرة الثانية ، من المهم.
لأنه إذا كان مؤشرًا فارغًا ، برنامجك سوف يتعطل
، سوف يفعل شيئًا سيئًا.
إعادة تسمية ملف.
نحن نعرف الآن كيفية فتح ملف.
فتح ملف هو الأول العملية ، يمكنك تحديد
الوضع واسم الملف.
هذا يعيد لك الملف يمكنك الآن استخدام المؤشر
للقيام بأشياء أخرى.
إعادة تسمية الملف هو مهم في بعض الأحيان.
انه سهل جدا.
أنت فقط تستخدم وظيفة إعادة التسمية.
يأخذ اسم قديم وجديد الاسم كمؤشرات ذات طابع
ثابت ، ويعيد عدد صحيح.
العدد الصحيح الذي تم إرجاعه سوف تكون صفرًا إذا كان
تغيير الاسم ناجحًا وغير صفري بخلاف ذلك.
يجب ألا يكون الملف مفتوحًا عند استدعاء إعادة التسمية.
خلاف ذلك ، سوف تفشل لأنه قيد الاستخدام ، لا يمكنك إعادة تسمية
ملف عندما يكون قيد الاستخدام.
إذن ما يمكنك فعله هنا هو أنك تستطيع فقط قل إعادة التسمية ، مرر اسم الملف القديم
واسم الملف الجديد.
في هذا المثال ، نستخدم مسار لملف في windows.
وأنك تعلم أنه النوافذ لأنني أرى القولون.
ستلاحظ أيضًا أن ملف الخط المائل العكسي هناك مرتين.
والسبب في ذلك هو أن الشرطة المائلة للخلف هي حرف خاص في ج.
شرطة مائلة للخلف n عبارة عن تعليقات خطية.
الشرطة المائلة للخلف r هي حرف إرجاع.
لذلك فإن الشرطة المائلة للخلف لها خاصية خاصة المعنى في البرنامج.
لذلك إذا كنت تريد بالفعل استخدام الامتداد شرطة مائلة للخلف لمسار في
دليل ، وهو ما تفعله النوافذ أنت يجب أن توفر اثنين منهم.
وها نحن نعيد التسمية ملفي. txt تحديد موقع الدليل
المؤقت.
نعيد تسميته إلى ملفي ينسخ. النص في دليل المحاولة.
وإذا كان هذا لا يساوي لواحد ، سوف تفشل.
نحن فقط نطبع ملف الإخراج الذي يقول أنه فشل.
خلاف ذلك ، فإن النسخة المطبوعة الخاصة بك ناجحة.
هذا سوف يغير ال اسم ملفي. txt في دليل temp لنسخة ملفي.
إذا كان مسار الملف غير صحيح أو أن الملف غير موجود ، فلن يتمكن
من إعادة تسميته.
يمكنك أيضًا إغلاق ملف تريده للقيام بذلك عند فتح ملف.
لذلك عندما تنتهي من استخدام الملف نفسه ، فأنت تريد
إخبار نظام التشغيل بتحرير هذا الملف.
تذكر ، هناك حد إلى عدد الملفات التي
يمكنك فتحها في أي وقت.
يمكنك القيام بذلك عن طريق الاتصال وظيفة الإغلاق f.
يقبل F close ملفًا المؤشر كحجة.
تذكر ، مؤشر الملف يمثل الملف.
تقوم بإرجاع eof.
Eof هو عدد صحيح.
إرجاع eof في حالة حدوث خطأ.
Eof شخصية خاصة يسمى نهاية حرف الملف.
تم تعريفه في Standardio. ح كعدد صحيح سالب.
عادة ما تكون مكافئة إلى سالب واحد.
إذا كانت f الإغلاق ناجحًا ، سيعود صفر.
لذلك يمكنك التحقق من eof للفشل.
أنت فقط تقول تمريرة قريبة في المؤشر ، يمكنك بعد ذلك ضبط المؤشر
على فارغ ونتيجة الاستدعاء f إغلاق هو أن الاتصال بين
المؤشر ، ملف p والملف المادي معطل.
لم يعد من الممكن استخدام ملف P للوصول إلى الملف لقراءته
أو كتابته أو إلحاقه أو إعادة تسميته.
إذا تمت كتابة الملف إلى ، تتم كتابة المحتويات الحالية لمخزن الإخراج
إلى الملف تأكد من عدم فقدان البيانات.
لذلك ليس لديك أي مشاكل مع تكامل البيانات ، فلن تغلق
الملف فعليًا إذا كان كذلك يتم كتابتها في موضوع آخر.
لذلك فهي آمنة الخيط.
لم نتحدث عن المواضيع ، هذا مفهوم أكثر تقدمًا.
ولكن هذا هو المكان الذي يمكن أن يكون لديك فيه العديد نقاط التنفيذ في برنامجك.
إنها ممارسة برمجة جيدة لإغلاق ملف بمجرد الانتهاء
منه ، تمامًا مثل إنها ممارسة برمجة جيدة لتحرير الذاكرة
عند الانتهاء معها ، نفس الشيء لإغلاق الملفات.
يحمي من فقدان بيانات الإخراج.
يجب عليك أيضًا إغلاق ملف قبل محاولة إعادة تسميتها
أو إزالتها ، يجب أن تقوم بذلك تكون مغلقة لا يمكن فتحها.
ماذا عن حذف ملف.
يمكنك حذف ملف بواسطة استدعاء وظيفة الإزالة.
تم الإعلان عن هذا أيضًا في Standardio. ح.
جميع عمليات الملف هي أعلن في المعيار. ioh.
يمكنك دائما الذهاب للنظر إلى هذا header إذا كنت
تريد أينما تم تثبيت ملفات الرأس c.
لذلك أنت فقط تقول إزالة اسم الملف.
هنا ليس عليك ذلك استخدم مؤشر الملف.
يمكنك أن تقول فقط لأن لا يجب أن يكون الملف
مفتوحًا بالفعل لإزالته.
الشيء نفسه مع إعادة تسمية لأن لا تريد في الواقع أن تكون الملفات مفتوحة لأن
ملف إعادة تسمية أو الإزالة ستفشل.
سيقوم بحذف الملف هذا يحمل اسم myfile. txt من الدليل
الحالي.
هذا يوفر مسارًا نسبيًا.
سيبحث عن هذا الملف أينما يتم تنفيذ البرنامج.
خلاف ذلك ، تحتاج إلى توفر مسارًا مطلقًا.
لا يمكن فتح الملف عندما حاول حذفه ، تمامًا مثل إعادة التسمية.
يجب عليك دائما التحقق مرتين مع العمليات التي تحذف الملفات.
يمكنك تحطيم الخاص بك النظام إذا لم تقم بذلك.
الحذف مكلف للغاية ، عملية خطيرة للغاية.
يمكن أن يسبب حذف الملفات مشاكل.
لذا كن حذرا.
كل المعلومات في هذه المحاضرة يتعلق بالوصول إلى الملفات ، وكيف
يمكنك فتح الملفات ، والتي هو ما عليك القيام به قبل أن تقرأ
وتكتب ، وكذلك كيف تفعل ذلك يمكنك حذف الملفات وإعادة تسميتها ثم إغلاقها عند
الانتهاء من استخدامها.
كل شيء قائم من هذا الملف المؤشر.
لذا فهم مؤشر الملف هذا والهيكل الذي يحتوي عليه.
أشياء مفيدة جدا.
يحتوي رأس io القياسي على ملفات كل المعلومات العظيمة.
المحاضرتان التاليتان ، سنذهب للحديث
عن القراءة والكتابة إلى ملفات نصية ، إضافة في الواقع البيانات أو إضافتها أو قراءتها.
شكرًا لك. اتمنى ان يكون ذلك مفيدا.