logo

رموز خطأ لينكس

رموز خطأ Linux هي تلك الرموز التي يتم عرضها في حالة حدوث خطأ في النظام أثناء العمل أو استخدام البرنامج. يمكن التعرف على الأخطاء بمساعدة رموز الخطأ. تساعدنا رموز الخطأ في التعرف على مصدر الخطأ.

إذا كنا نعمل على نظام Linux، فمن الواضح أننا قد نواجه أخطاء. قد تكون بعض الأخطاء بسيطة وقد لا تؤدي إلى انقطاع البرنامج. ولكن قد تكون هناك بعض الأخطاء التي قد تتسبب في توقف النظام أو البرنامج عن الاستجابة. يمكن أن تؤدي هذه الأخطاء إلى فقدان البيانات أو قد تمنع البرنامج من الاكتمال. يتم عرض الأخطاء في الغالب على شكل رموز أو رسائل.

في هذا القسم، سنرى أخطاء في برمجة C وقائمة بالأخطاء المحتملة في لينكس نظام.

أخطاء Linux في برمجة C

يجب أن يعرف المبرمج الماهر كيفية التعامل مع الأخطاء. لا توفر لغة البرمجة C دعمًا مباشرًا لمعالجة الأخطاء. علينا اكتشاف مصدر الخطأ والتعامل معه. في لغة C، تعرض قيم الإرجاع الفشل أو النجاح. إذا فشلت إحدى الوظائف في برنامج C، فيجب علينا التعامل مع الخطأ وفقًا لذلك؛ وإلا فإنه يسجل الأخطاء الأخيرة في ملف السجل.

أثناء تنفيذ برامج C، قد نلاحظ بعض أرقام الأخطاء مثل 'رقم الخطأ هو: 17'. هنا الخطأ رقم 17 يعني أن الملف موجود بالفعل. كل رقم خطأ له بعض المعنى.

لغة C تدعم متغير 'خطأ لا.' .' باستخدام متغير رقم الخطأ هذا، يمكننا استخدام بعض وظائف معالجة الأخطاء للتعامل معه بشكل صحيح.

لاستخدام رقم خطأ المتغير الخارجي، علينا تضمين ملف رأس 'errno.h.' يتم استخدام ملف الرأس لتعريف المتغير 'errno'. يتم تعيين المتغير errno بواسطة استدعاءات النظام ووظائف المكتبة عند حدوث الخطأ. هناك وظيفتان مهمتان في لغة البرمجة سي للتعامل مع الأخطاء. خطأ و رعب . يتم استخدام الدالة perror لطباعة وصف الخطأ وتقوم الدالة sterror بإرجاع سلسلة تحتوي على رمز الخطأ.

دعونا نعرض قائمة رموز الخطأ باستخدام errno.

خطأ لينكس

يتم استخدام الأداة المساعدة errno للبحث عن رموز errno وأسماء الماكرو والأوصاف المقابلة. على سبيل المثال، إذا قمنا بتوفير ENOENT على نظام Linux، فسوف يعرض الكود 2 والوصف ' لا يوجد ملف او مجلد .' إذا قمنا بتوفير الرمز 2، فسيتم عرض ENOENT ووصفه .

إذا لم يتم تثبيت الأداة المساعدة errno على جهازنا، فستعرض الخطأ كما يلي:

رموز خطأ لينكس

لتثبيته، قم بتنفيذ الأمر أدناه:

 sudo apt install moreutils 

من خلال تنفيذ الأمر أعلاه، يتم تثبيت حزمة moreutils على جهازنا الذي يحتوي على الأداة المساعدة errno.

رموز خطأ لينكس

عرض قائمة رموز الخطأ

لعرض قائمة رموز الخطأ، قم بتنفيذ الأمر كما يلي:

 errno -l 

سيعرض الأمر أعلاه قائمة برموز الأخطاء بواسطة RedHat. النظر في الإخراج أدناه:

رموز خطأ لينكس

عرض معلومات رقم الخطأ

لعرض معلومات رقم خطأ معين، قم بتنفيذ الأمر كما يلي:

 errno 2 

سيعرض الأمر أعلاه وصف الخطأ رقم 2. خذ بعين الاعتبار الإخراج أدناه:

رموز خطأ لينكس

عرض معلومات اسم الخطأ

لعرض معلومات اسم خطأ معين، قم بتنفيذ الأمر errno، متبوعًا باسم الخطأ. على سبيل المثال، لعرض معلومات اسم الخطأ 'ESRC '، قم بتنفيذ الأمر كما يلي:

 errno ESRCH 

سيعرض الأمر أعلاه معلومات حول اسم الخطأ المحدد. النظر في الإخراج أدناه:

رموز خطأ لينكس

عرض الخطأ باستخدام السلاسل

لعرض وصف الخطأ باستخدام سلسلة من الوصف، قم بتنفيذ الأمر كما يلي:

 errno -s permission 

سيعرض الأمر أعلاه الأخطاء التي يحتوي وصفها على إذن السلسلة. النظر في الإخراج أدناه:

رموز خطأ لينكس

قائمة أخطاء نظام Linux

فيما يلي قائمة جزئية بالأخطاء المحتملة لنظام Linux:

خطا بالكود خطأ لا وصف
العلوي 1 يتم عرضه إذا كانت العملية غير مسموح بها.
لا شيء 2 يتم عرضه في حالة عدم وجود مثل هذا الملف أو الدليل.
ESRCH 3 يتم عرضه في حالة عدم وجود مثل هذه العملية.
اينتر 4 يتم عرضه لمكالمة النظام المتقطعة
EIO 5 يتم عرضه لخطأ الإدخال/الإخراج.
انكسيو 6 يتم عرضه في حالة عدم وجود مثل هذا الجهاز أو العنوان.
E2BIG 7 يتم عرضه إذا كانت قائمة الوسائط طويلة جدًا.
اينويكسيك 8 يتم عرضه إذا كان هناك خطأ في تنسيق exec
ايبادف 9 يتم عرضه في حالة وجود واصف ملف سيء.
طفل 10 يتم عرضه في حالة عدم وجود عملية فرعية.
مرة أخرى أحد عشر يتم عرضه إذا كان المورد غير متاح مؤقتًا.
ENOMEM 12 يتم عرضه إذا لم يتمكن النظام من تخصيص الذاكرة.
EACCES 13 يتم عرضه إذا تم رفض الإذن.
خطأ 14 يتم عرضه إذا كان هناك عنوان غير صالح.
إينوتبلك خمسة عشر يتم عرضه إذا كان جهاز الحظر مطلوبًا.
مشغول 16 يتم عرضه إذا كان الجهاز أو المورد مشغولاً.
موجود 17 يتم عرضه إذا كان الملف موجودًا بالفعل.
EXDEV 18 يتم عرضه إذا كان هناك رابط غير صالح عبر الأجهزة.
إنوديف 19 يتم عرضه إذا لم يكن هناك مثل هذا الجهاز.
إينوتدير عشرين يتم عرضه إذا لم يكن هناك دليل.
ايسدير واحد وعشرين يتم عرضه إذا كان هناك دليل.
خيار واحد 22 يتم عرضه إذا كانت هناك وسيطة غير صالحة.
وضعت على 23 يتم عرضه إذا كان هناك عدد كبير جدًا من الملفات المفتوحة في النظام.
ميت 24 يتم عرضه إذا كان هناك عدد كبير جدًا من الملفات المفتوحة.
إنوتي 25 يتم عرضه إذا كان هناك ioctl غير مناسب للجهاز.
ETXTBSY 26 يتم عرضه إذا كان الملف النصي مشغولاً.
EFBIG 27 يتم عرضه إذا كان الملف كبيرًا جدًا.
اينوسبك 28 يتم عرضه في حالة عدم وجود مساحة متبقية على الجهاز.
إسبيب 29 يتم عرضه في حالة البحث غير القانوني.
ايروفس 30 يتم عرضه في حالة نظام الملفات للقراءة فقط.
إملينك 31 يتم عرضه إذا كان هناك عدد كبير جدًا من الروابط.
إيبيب 32 يتم عرضه في حالة وجود أنبوب مكسور.
ايدوم 33 يتم عرضه إذا كانت الوسيطة الرقمية خارج المجال.
برتقالي 3. 4 يتم عرضه إذا كانت النتيجة الرقمية خارج النطاق.
إيديلك 35 يتم عرضه إذا تم تجنب حالة توقف تام للمورد.
إناميتوولونغ 36 يتم عرضه إذا كان اسم الملف طويلاً جدًا.
اينوك 37 يتم عرضه في حالة عدم توفر أقفال.
إنوسيس 38 يتم عرضه إذا لم يتم تنفيذ الوظيفة.
فارغ 39 يتم عرضه إذا لم يكن الدليل فارغًا.
ELOOP 40 يتم عرضه إذا كان هناك عدد كبير جدًا من مستويات الروابط الرمزية.
ENOMSG 42 يتم عرضه في حالة عدم وجود رسالة من النوع المطلوب.
ايدرم 43 يتم عرضه إذا تمت إزالة المعرف.
إيكرنج 44 يتم عرضه إذا كان رقم القناة خارج النطاق.
EL2NSYNC أربعة خمسة يتم عرضه إذا لم تتم مزامنة المستوى 2.
EL3HLT 46 يتم عرضه إذا تم إيقاف المستوى 3.
EL3RST 47 يتم عرضه إذا تمت إعادة تعيين المستوى 3.
ELNRNG 48 يتم عرضه إذا كان رقم الارتباط خارج النطاق.
يوناتش 49 يتم عرضه إذا لم يتم إرفاق برنامج تشغيل البروتوكول.
اينوكسي خمسون يتم عرضه في حالة عدم توفر هيكل CSI.
EL2HLT 51 يتم عرضه إذا تم إيقاف المستوى 2.
قد كان 52 يتم عرضه في حالة التبادل غير الصالح.
إبدر 53 يتم عرضه في حالة واصف الطلب غير صالح.
كامل 54 يتم عرضه إذا كان التبادل ممتلئًا.
إينوانو 55 يتم عرضه في حالة عدم وجود الأنود.
إبدركك 56 يتم عرضه لرمز طلب غير صالح.
إيبادسلت 57 يتم عرضه لفتحة غير صالحة.
إبفونت 59 يتم عرضه إذا كان تنسيق ملف الخط سيئًا.
من جانب واحد 60 يتم عرضه إذا لم يكن الجهاز دفقًا.
إنوداتا 61 يتم عرضه إذا لم تكن هناك بيانات متاحة.
الساعة الإلكترونية 62 يتم عرضه في حالة انتهاء صلاحية المؤقت.
إنوسر 63 يتم عرضه في حالة نفاد الموارد.
إنونيت 64 يتم عرضه إذا لم يكن الجهاز متصلاً بالشبكة.
اينوبكج 65 يتم عرضه إذا لم يتم تثبيت الحزمة.
إريموت 66 يتم عرضه إذا كان الكائن بعيدًا.
إينولينك 67 يتم عرضه إذا تم قطع الارتباط.
إيدف 68 يتم عرضه لخطأ في الإعلان.
ESRMNT 69 يتم عرضه لخطأ Srmount.
إيكوم 70 يتم عرضه إذا كان هناك خطأ في الاتصال عند الإرسال.
ابروتو 71 يتم عرضه لخطأ في البروتوكول.
ملتيهوب 72 يتم عرضه لمحاولة Multihop.
إدوتدوت 73 يتم عرضه لخطأ محدد في RFS.
EBADMSG 74 يتم عرضه للرسالة السيئة.
التدفق الزائد 75 يتم عرضه إذا كانت القيمة كبيرة جدًا بالنسبة لنوع البيانات المحدد.
إينوتونيك 76 يتم عرضه إذا لم يكن الاسم فريدًا على الشبكة.
إيبادفد 77 يتم عرضه إذا كان واصف الملف في حالة سيئة.
EREMCHG 78 يتم عرضه إذا تم تغيير العنوان البعيد.
إليباكك 79 يتم عرضه إذا لم نتمكن من الوصول إلى المكتبة المشتركة المطلوبة.
إليباد 80 يتم عرضه في حالة الوصول إلى مكتبة مشتركة تالفة.
إليبسن 81 يتم عرضه في حالة وجود قسم .lib في a.out تالف.
إليباكس 82 يتم عرضه إذا كنا نحاول الارتباط بعدد كبير جدًا من المكتبات المشتركة.
إليبكسيك 83 يتم عرضه إذا لم نتمكن من تنفيذ مكتبة مشتركة مباشرة.
إيلسيق 84 يتم عرضه لحرف واسع أو متعدد البايتات غير صالح أو غير كامل
إرستارت 85 يتم عرضه لإعلامك بأنه يجب إعادة تشغيل مكالمة النظام التي تمت مقاطعتها.
إستريبيب 86 يتم عرضه إذا كان هناك خطأ في توجيه التدفق.
المستخدمين 87 يتم عرضه لعدد كبير جدًا من المستخدمين.
إينوتسوك 88 يتم عرضه لتشغيل المقبس على غير المقبس.
إديستادريك 89 يتم عرضه إذا كان عنوان الوجهة مطلوبًا.
EMSGSIZE 90 يتم عرضه إذا كانت الرسالة طويلة جدًا.
النموذج المبتكر 91 يتم عرضه إذا كان البروتوكول من النوع الخاطئ للمقبس.
إينوبروتوبت 92 يتم عرضه إذا كان البروتوكول غير متوفر.
دعم ابروتونوسبورت 93 يتم عرضه إذا كان البروتوكول غير مدعوم.
دعم إلكتروني 94 يتم عرضه إذا كان نوع المقبس غير مدعوم.
إيبونوتسوب 95 يتم عرضه إذا كانت العملية غير مدعومة.
دعم EPFNOSUPPORT 96 يتم عرضه إذا كانت عائلة البروتوكول غير مدعومة.
ايفنوسبورت 97 يتم عرضه إذا كانت عائلة العناوين غير مدعومة بالبروتوكول.
إيدرينوس 98 يتم عرضه إذا كان العنوان قيد الاستخدام بالفعل.
إيدرنوتافاييل 99 يتم عرضه إذا لم يتمكن النظام من تعيين العنوان المطلوب.
إنتداون 100 يتم عرضه إذا كانت الشبكة معطلة.
ENETUNREACH 101 يتم عرضه إذا كانت الشبكة غير قابلة للوصول.
إنتريسيت 102 يتم عرضه إذا انقطع الاتصال بالشبكة عند إعادة التعيين.
متطور 103 يتم عرضه إذا تسبب البرنامج في إلغاء الاتصال.
ضبط 104 يتم عرضه إذا تمت إعادة تعيين الاتصال بواسطة النظير.
اينوبوفس 105 يتم عرضه في حالة عدم توفر مساحة عازلة متاحة.
إسكون 106 يتم عرضه إذا كانت نقطة نهاية النقل متصلة بالفعل.
إينوتكون 107 يتم عرضه إذا كانت نقطة نهاية النقل غير متصلة.
إيقاف التشغيل 108 يتم عرضه إذا لم يتمكن النظام من الإرسال بعد إيقاف تشغيل نقطة نهاية النقل.
ETOOMNYREFS 109 يتم عرضه إذا كان هناك عدد كبير جدًا من المراجع: لا يمكن الربط.
مهلة 110 يتم عرضه إذا انتهت مهلة الاتصال.
مرفوض 111 يتم عرضه إذا تم رفض الاتصال.
اي هوست داون 112 يتم عرضه إذا كان المضيف معطلاً.
EHOSTUNREACH 113 يتم عرضه إذا لم يكن هناك طريق للاستضافة.
جاهز بالفعل 114 يتم عرضه إذا كانت العملية جارية بالفعل.
كل تقدم 115 يتم عرضه إذا كانت العملية قيد التقدم الآن.
انقر 116 يتم عرضه لمقبض الملف القديم.
يوكلين 117 يتم عرضه إذا كان الهيكل بحاجة إلى التنظيف.
زي مُوحد 118 يتم عرضه لملف نوع غير مسمى XENIX.
نافايل 119 يتم عرضه في حالة عدم توفر إشارات XENIX.
ايسنام 120 يتم عرضه إذا كان هناك ملف نوع مسمى.
إريموتيو 121 يتم عرضه لخطأ الإدخال/الإخراج عن بعد.
إدكوت 122 يتم عرضه إذا تم تجاوز الحصة النسبية للقرص.
إنوميديم 123 يتم عرضه إذا لم يتم العثور على وسيط.
نوع متوسط 124 يتم عرضه إذا كان هناك نوع وسيط خاطئ.
تم الإلغاء 125 يتم عرضه إذا تم إلغاء العملية.
إنوكي 126 يتم عرضه في حالة عدم توفر المفتاح المطلوب.
انتهت صلاحية المفتاح 127 يتم عرضه إذا انتهت صلاحية المفتاح.
تم إبطال المفتاح 128 يتم عرضه إذا تم إبطال المفتاح.
تم رفض المفتاح الإلكتروني 129 يتم عرضه إذا تم رفض المفتاح بواسطة الخدمة.
EOWNERDEAD 130 يتم عرضه إذا مات المالك.
قابل للاسترداد 131 يتم عرضه لعدم وجود حالة قابلة للاسترداد.
ايرفكيل 132 يتم عرضه إذا كانت العملية غير ممكنة بسبب قتل التردد اللاسلكي.
سموم إلكترونية 133 يتم عرضه إذا كانت صفحة الذاكرة تحتوي على خطأ في الأجهزة.