القيود الغريبة لـ errno(3) في لينكس

2025-07-04

تكشف صفحة دليل لينكس الخاصة بـ errno(3) عن قيد غريب: يمكن تعديل errno حتى في حالة نجاح دعوات الدالة، ولا يتم تعيينه أبدًا على صفر من قبل أي دعوة نظام أو دالة مكتبة. ينبع هذا من تصميم يونكس التقليدي، حيث عادةً ما تُعيد دعوات النظام errno فقط في حالة الفشل، تاركة إياه دون تغيير في حالة النجاح. قد تقوم دوال مكتبة C بإجراء العديد من دعوات النظام، وقد تفشل بعض منها دون التأثير على نجاح دالة المكتبة بشكل عام، تاركة errno بقيمة الفشل. ورثت ANSI C و POSIX هذا السلوك، مما يتطلب أن يكون errno ذا معنى فقط عندما تفشل دالة وتحدد وثائقها تعيين errno.

التطوير