خطأ عمره ٥٠ عامًا في مدخلات/مخرجات الملفات بلغة سي: كشف لغز تراثي
أثناء تحسين محاكي دوس، اكتشف مطور خطأً تافهًا على ما يبدو في مدخلات/مخرجات الملفات: أضاف نصًا إلى ملف باستخدام الأمر `echo`، لكن النتائج كانت غير متوقعة. كشف تصحيح الأخطاء عن عيب في كيفية تعامل مكتبات وقت تشغيل سي مع التبديل بين القراءة والكتابة، وهو عيب يعود إلى سبعينيات القرن الماضي وحتى أنظمة يونكس السابقة. تتعمق المقالة في السياق التاريخي، من سي كي أر الأولي إلى معايير سي الحديثة، واستكشاف الاختلافات في التنفيذ عبر إصدارات يونكس المختلفة ومجمعات سي. تم تحديد السبب الرئيسي على أنه قيود في معالجة وضع التحديث بواسطة مكتبات سي الأولية، مع اختلافات في كيفية تعامل أنظمة التشغيل المختلفة ومجمعات سي مع هذه القيود. خلص الكاتب إلى أنه حتى اليوم، بالنسبة لشيفرة سي المحمولة، فإن إجراء `fseek` صريح ضروري عند التبديل بين قراءة وكتابة ملف.