الملف المتقلل الذي تم فتحه في القراءة/الكتابة
-
27-09-2019 - |
سؤال
في بيرل:
لدي ملف مفتوح في القراءة/الكتابة ، مع قفل حصري.
open( $f, "+< $filename" );
flock( $f, LOCK_EX );
إذا كتبت المزيد من البيانات إلى الملف أكثر مما تمسكه سابقًا ، فسيتم تنمو الملف.
إذا كتبت بيانات أقل ، فإن محتوياتي الجديدة في البداية ، لكن المحتويات القديمة لا تزال موجودة في نهاية الملف.
هذا ليس مفاجئًا ، لكن هذا ليس ما أريده.
هل هناك طريقة بسيطة لتقليص الملف أثناء فتحه في القراءة/الكتابة؟ في الأساس ، أريد أن أخبره بإنهاء الملف في موقع البايت هذا بالضبط.
أعلم أنه يمكنني فتحه بشكل مختلف ، وأنا أفكر في القيام بذلك ، لكن إصلاح سطر واحد سيكون لطيفًا.
المحلول
نصائح أخرى
أنا في الواقع لا أعرف بيرل ، لكن منذ ذلك الحين ftruncate(2)
ستكون وظيفة C ، ربما هذه يساعد؟
لا تنتمي إلى StackOverflow