رموز خطأ 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 | يتم عرضه إذا كانت صفحة الذاكرة تحتوي على خطأ في الأجهزة. |