أكواد errno في Linux

عندما يفشل استدعاء نظام في Linux فإنه يعيد -1 ويضبط errno على رقم صغير له اسم رمزي مثل ENOENT (الرقم 2، لا يوجد ملف أو مجلد بهذا الاسم) أو EACCES (الرقم 13، الإذن مرفوض). تعرض البرامج هذه القيم في صورة «Permission denied» أو الاسم الخام في السجلات وتتبّعات المكدس.

الأرقام أدناه مأخوذة من ملفات errno العامة في النواة (asm-generic) المستخدمة على معماريتي x86 وARM. توضح كل صفحة كيف تجد الاستدعاء الفاشل بدقة باستخدام strace وperror وdmesg.

16 دليل خطوة بخطوة

EPERM (errno 1)LINUXerrno 1تعني EPERM، أي 'Operation not permitted' (errno 1)، أن النواة رفضت عملية تتطلب صلاحيات أو ملكية لا تملكها… ENOENT (errno 2)LINUXerrno 2تعني ENOENT، أي 'No such file or directory' (errno 2)، أن مساراً يستخدمه البرنامج غير موجود. EIO (errno 5)LINUXerrno 5تعني EIO، أي 'Input/output error' (errno 5)، أن عملية قراءة أو كتابة منخفضة المستوى فشلت على مستوى الجهاز أو… EAGAIN (errno 11)LINUXerrno 11تعني EAGAIN، أي 'Resource temporarily unavailable' (errno 11 في Linux، وهي بقيمة EWOULDBLOCK نفسها)، أن… ENOMEM (errno 12)LINUXerrno 12تعني ENOMEM، أي 'Cannot allocate memory' (errno 12)، أن النواة لم تستطع توفير الذاكرة التي يحتاجها الطلب. EACCES (errno 13)LINUXerrno 13تعني EACCES، أي 'Permission denied' (errno 13)، أن بتات أذونات الملف أو قوائم التحكم بالوصول (ACL) أو وحدة… EBUSY (errno 16)LINUXerrno 16تعني EBUSY، أي 'Device or resource busy' (errno 16)، أن الهدف قيد الاستخدام ولا يمكن متابعة العملية. EMFILE (errno 24)LINUXerrno 24تعني EMFILE، أي 'Too many open files' (errno 24)، أن عملية واحدة بلغت حدّها الأقصى من واصفات الملفات (file… ENOSPC (errno 28)LINUXerrno 28تعني ENOSPC، أي 'No space left on device' (errno 28)، أن عملية كتابة فشلت لأن نظام الملفات لا يملك مساحة. EROFS (errno 30)LINUXerrno 30تعني EROFS، أي 'Read-only file system' (errno 30)، أنه جرت محاولة الكتابة على نظام ملفات مركّب للقراءة فقط. EPIPE (errno 32)LINUXerrno 32تعني EPIPE، أي 'Broken pipe' (errno 32)، أن برنامجاً كتب إلى أنبوب أو مقبس أُغلق طرف القراءة فيه مسبقاً. EADDRINUSE (errno 98)LINUXerrno 98تعني EADDRINUSE، أي 'Address already in use' (errno 98 في Linux و48 في macOS)، أن برنامجاً حاول الارتباط… ECONNRESET (errno 104)LINUXerrno 104تعني ECONNRESET، أي 'Connection reset by peer' (errno 104 في Linux و54 في macOS)، أن الطرف الآخر من اتصال… ETIMEDOUT (errno 110)LINUXerrno 110تعني ETIMEDOUT، أي 'Connection timed out' (errno 110 في Linux و60 في macOS)، أن عملية شبكية لم تتلق أي رد… ECONNREFUSED (errno 111)LINUXerrno 111تعني ECONNREFUSED، أي 'Connection refused' (errno 111 في Linux و61 في macOS)، أن المضيف المستهدف رد لكن لا… EHOSTUNREACH (errno 113)LINUXerrno 113تعني EHOSTUNREACH، أي 'No route to host' (errno 113 في Linux و65 في macOS)، أن النظام لم يستطع تسليم الحزم…