logo

קודי שגיאה של לינוקס

קודי שגיאה של לינוקס הם אותם קודים המוצגים אם מתרחשת שגיאה במערכת בזמן עבודה או שימוש בתוכנית. ניתן לזהות את השגיאות בעזרת קודי שגיאה. קודי השגיאה מסייעים לנו לזהות את מקור השגיאה.

אם אנו עובדים על מערכת לינוקס, ברור שאנו עלולים להיתקל בשגיאות. שגיאות מסוימות יכולות להיות קלות וייתכן שלא יובילו להפסקה של התוכנית. אבל יכולות להיות כמה שגיאות שיכולות לגרום למערכת או לתוכנית להפסיק להגיב. שגיאות אלו עלולות להוביל לאובדן נתונים או למנוע את השלמת התוכנית. לרוב שגיאות מוצגות בצורה של קודים או הודעות.

בסעיף זה, נראה שגיאות בתכנות C ורשימת שגיאות אפשריות ב- לינוקס מערכת.

שגיאות לינוקס בתכנות C

מתכנת מיומן צריך לדעת איך להתמודד עם השגיאות. שפת התכנות C אינה מספקת תמיכה ישירה לטיפול בשגיאות. עלינו לזהות את מקור השגיאה ולטפל בה. בשפת C, ערכי ההחזרה מציגים את הכישלון או ההצלחה. אם פונקציה בתוכנית C נכשלת, עלינו לטפל בשגיאה בהתאם; אחרת הוא מתעד את השגיאות האחרונות בקובץ יומן.

בזמן הפעלת תוכניות C, אנו עשויים להבחין במספרי שגיאה כגון 'שגיאה מס' היא: 17'. כאן, שגיאה מס' 17 פירושה שהקובץ כבר קיים. לכל מספר שגיאה יש משמעות כלשהי.

שפת C תומכת במשתנה 'שגיאה .' על ידי שימוש במשתנה מספר שגיאה זה, נוכל להשתמש בכמה פונקציות לטיפול בשגיאות כדי לטפל בו כראוי.

כדי להשתמש במספר השגיאה של המשתנה החיצוני, עלינו לכלול קובץ כותרת 'errno.h' קובץ הכותרת משמש להגדרת המשתנה 'errno'. משתנה errno נקבע על ידי קריאות המערכת ופונקציות הספרייה בהתרחשות השגיאה. ישנן שתי פונקציות חשובות ב- שפת תכנות C להתמודד עם טעויות; טעות ו strerror . הפונקציה perror משמשת להדפסת תיאור השגיאה והפונקציה sterror מחזירה מחרוזת בעלת קוד שגיאה.

בואו נציג את רשימת קודי השגיאה באמצעות errno.

שגיאה של לינוקס

כלי השירות errno משמש לחיפוש קודי שגיאה, שמות מאקרו והתיאורים המתאימים. לדוגמה, אם נספק את ENOENT במערכת לינוקס, היא תציג את הקוד 2 ואת התיאור ' אין כזה קובץ או תקייה .' אם נספק את הקוד 2, הוא יציג את ENOENT והתיאור שלו .

אם כלי השירות errno אינו מותקן במחשב שלנו, הוא יציג את השגיאה באופן הבא:

קודי שגיאה של לינוקס

כדי להתקין אותו, בצע את הפקודה הבאה:

 sudo apt install moreutils 

על ידי ביצוע הפקודה לעיל, חבילת moreutils מותקנת במחשב שלנו המכילה את כלי השירות errno.

קודי שגיאה של לינוקס

הצג את רשימת קודי השגיאה

כדי להציג את רשימת קודי השגיאה, בצע את הפקודה באופן הבא:

 errno -l 

הפקודה לעיל תציג את רשימת קודי השגיאה של RedHat. שקול את הפלט שלהלן:

קודי שגיאה של לינוקס

הצג את המידע של מספר שגיאה

כדי להציג את המידע של מספר שגיאה מסוים, בצע את הפקודה באופן הבא:

 errno 2 

הפקודה לעיל תציג את התיאור של שגיאה מספר 2. שקול את הפלט שלהלן:

קודי שגיאה של לינוקס

הצג את המידע של שם שגיאה

כדי להציג את המידע של שם שגיאה מסוים, בצע את הפקודה errno, ואחריה את שם השגיאה. לדוגמה, כדי להציג את המידע של שם שגיאה 'ESCH ,' בצע את הפקודה באופן הבא:

 errno ESRCH 

הפקודה לעיל תציג את המידע על שם השגיאה שצוין. שקול את הפלט שלהלן:

קודי שגיאה של לינוקס

הצג את השגיאה באמצעות מחרוזות

כדי להציג תיאור שגיאה באמצעות מחרוזת מהתיאור, בצע את הפקודה באופן הבא:

 errno -s permission 

הפקודה לעיל תציג את השגיאות שהתיאור שלהן מכיל הרשאת מחרוזת. שקול את הפלט שלהלן:

קודי שגיאה של לינוקס

רשימה של שגיאות מערכת לינוקס

להלן רשימה חלקית של שגיאות אפשריות של מערכת לינוקס:

קוד שגיאה שגיאה מס' תיאור
עֶלִיוֹן 1 הוא מוצג אם הפעולה אינה מותרת.
ENOENT 2 הוא מוצג אם אין קובץ או ספרייה כאלה.
ESRCH 3 הוא מוצג אם לא קיים תהליך כזה.
EINTR 4 הוא מוצג עבור שיחת מערכת מופרעת
EIO 5 הוא מוצג עבור שגיאת קלט/פלט.
ENXIO 6 הוא מוצג אם אין התקן או כתובת כזו.
E2BIG 7 הוא מוצג אם רשימת הארגומנטים ארוכה מדי.
ENOEXEC 8 היא מוצגת אם יש שגיאת פורמט exec
EBADF 9 הוא מוצג במקרה של מתאר קובץ גרוע.
ECHILD 10 הוא מוצג אם לא קיים תהליך צאצא.
שוב אחד עשר הוא מוצג אם המשאב אינו זמין באופן זמני.
ENOMEM 12 הוא מוצג אם המערכת אינה יכולה להקצות זיכרון.
EACCES 13 הוא מוצג אם ההרשאה נדחתה.
EFAULT 14 זה מוצג אם יש כתובת שגויה.
ENOTBLK חֲמֵשׁ עֶשׂרֵה הוא מוצג אם נדרש התקן חסום.
עסוק 16 הוא מוצג אם המכשיר או המשאב תפוסים.
קיים 17 הוא מוצג אם הקובץ כבר קיים.
EXDEV 18 הוא מוצג אם יש קישור חוצה-מכשיר לא חוקי.
ENODEV 19 הוא מוצג אם אין מכשיר כזה.
ENOTDIR עשרים הוא מוצג אם אין ספרייה.
EISDIR עשרים ואחת זה מוצג אם יש ספריה.
בחירה יחידה 22 הוא מוצג אם יש ארגומנט לא חוקי.
להתלבש 23 זה מוצג אם יש יותר מדי קבצים פתוחים במערכת.
מֵת 24 הוא מוצג אם יש יותר מדי קבצים פתוחים.
ENOTTY 25 זה מוצג אם יש ioctl לא מתאים למכשיר.
ETXTBSY 26 הוא מוצג אם קובץ הטקסט תפוס.
EFBIG 27 הוא מוצג אם הקובץ גדול מדי.
ENOSPC 28 הוא מוצג אם לא נותר מקום במכשיר.
ESPIPE 29 הוא מוצג במקרה של חיפוש לא חוקי.
EROFS 30 הוא מוצג במקרה של מערכת קבצים לקריאה בלבד.
EMLINK 31 זה מוצג אם יש יותר מדי קישורים.
EPIPE 32 זה מוצג במקרה של צינור שבור.
אֱדוֹם 33 הוא מוצג אם הארגומנט המספרי נמצא מחוץ לתחום.
ERANGE 3. 4 הוא מוצג אם התוצאה המספרית נמצאת מחוץ לטווח.
EDEADLK 35 הוא מוצג אם נמנעת מבוי סתום של משאבים.
ENAMETOOLONG 36 הוא מוצג אם שם הקובץ ארוך מדי.
ENOLCK 37 הוא מוצג אם אין מנעולים זמינים.
ENOSYS 38 הוא מוצג אם הפונקציה לא מיושמת.
ENOTEMPTY 39 הוא מוצג אם הספרייה אינה ריקה.
ELOOP 40 הוא מוצג אם יש יותר מדי רמות של קישורים סמליים.
ENOMSG 42 היא מוצגת אם אין הודעה מהסוג הרצוי.
EIDRM 43 הוא מוצג אם המזהה מוסר.
ECHRNG 44 הוא מוצג אם מספר הערוץ נמצא מחוץ לטווח.
EL2NSYNC ארבע חמש הוא מוצג אם רמה 2 אינה מסונכרנת.
EL3HLT 46 הוא מוצג אם רמה 3 נעצרת.
EL3RST 47 הוא מוצג אם רמה 3 מאופסת.
ELNRNG 48 הוא מוצג אם מספר הקישור מחוץ לטווח.
EUNATCH 49 הוא מוצג אם מנהל ההתקן של הפרוטוקול אינו מצורף.
ENOCSI חמישים הוא מוצג אם אין מבנה CSI זמין.
EL2HLT 51 הוא מוצג אם רמה 2 נעצרת.
זה היה 52 הוא מוצג במקרה של החלפה לא חוקית.
EBADR 53 הוא מוצג במקרה של מתאר בקשה לא חוקי.
EXFULL 54 זה מוצג אם ההחלפה מלאה.
ENOANO 55 הוא מוצג במקרה של אין אנודה.
EBADRQC 56 הוא מוצג עבור קוד בקשה לא חוקי.
EBADSLT 57 הוא מוצג עבור משבצת לא חוקית.
EBFONT 59 הוא מוצג אם יש פורמט קובץ גופן גרוע.
חד צדדי 60 הוא מוצג אם המכשיר אינו זרם.
ENODATA 61 הוא מוצג אם אין נתונים זמינים.
ETIME 62 הוא מוצג במקרה של פג תוקף הטיימר.
ENOSR 63 זה מוצג במקרה של משאבים מחוץ לזרמים.
ENONET 64 הוא מוצג אם המכשיר אינו ברשת.
ENOPKG 65 הוא מוצג אם החבילה אינה מותקנת.
ERMOTE 66 הוא מוצג אם האובייקט מרוחק.
ENOLINK 67 הוא מוצג אם הקישור נותק.
EADV 68 הוא מוצג עבור שגיאת פרסום.
ESRMNT 69 הוא מוצג עבור שגיאת Srmount.
ECOMM 70 זה מוצג אם יש שגיאת תקשורת בשליחת.
EPROTO 71 הוא מוצג עבור שגיאת פרוטוקול.
אמולטהופ 72 הוא מוצג עבור נסיונות Multihop.
EDOTDOT 73 הוא מוצג עבור שגיאה ספציפית ל-RFS.
EBADMSG 74 הוא מוצג עבור הודעה גרועה.
EOVERFLOW 75 הוא מוצג אם הערך גדול מדי עבור סוג הנתונים המוגדר.
ENOTUNIQ 76 הוא מוצג אם השם אינו ייחודי ברשת.
EBADFD 77 הוא מוצג אם מתאר הקובץ במצב רע.
EREMCHG 78 הוא מוצג אם הכתובת המרוחקת משתנה.
ELIBACC 79 הוא מוצג אם אין לנו גישה לספרייה משותפת הדרושה.
אליבאד 80 הוא מוצג במקרה של גישה לספרייה משותפת פגומה.
ELIBSCN 81 הוא מוצג אם יש קטע lib ב-a.out פגום.
ELIBMAX 82 הוא מוצג אם אנו מנסים לקשר במספריות משותפות רבות מדי.
ELIBEXEC 83 הוא מוצג אם איננו יכולים לנהל ספרייה משותפת ישירות.
EILSEQ 84 הוא מוצג עבור תו רב-בתים לא חוקי או לא שלם
ERESTART 85 הוא מוצג כדי ליידע שיש להפעיל מחדש שיחת מערכת שהופרעה.
ESTRAPIPE 86 זה מוצג אם יש שגיאת צינור זרמים.
EUSERS 87 הוא מוצג עבור משתמשים רבים מדי.
ENOTSOCK 88 הוא מוצג עבור פעולת שקע על שקע שאינו.
EDESTADDRREQ 89 הוא מוצג אם כתובת היעד נדרשת.
EMSGSIZE 90 הוא מוצג אם ההודעה ארוכה מדי.
אפרוטוטייפ 91 הוא מוצג אם הפרוטוקול הוא סוג שגוי עבור שקע.
ENOPROTOOPT 92 הוא מוצג אם הפרוטוקול אינו זמין.
EPROTONOSUPPORT 93 הוא מוצג אם הפרוטוקול אינו נתמך.
ESOCKTNOSUPPORT 94 הוא מוצג אם סוג Socket אינו נתמך.
EOPNOTSUPP 95 הוא מוצג אם הפעולה אינה נתמכת.
EPFNOSUPPORT 96 הוא מוצג אם משפחת הפרוטוקולים אינה נתמכת.
EAFNOSUPPORT 97 הוא מוצג אם משפחת הכתובות אינה נתמכת על ידי פרוטוקול.
EADDRINUS 98 הוא מוצג אם הכתובת כבר בשימוש.
EADDRNOTAVAIL 99 הוא מוצג אם המערכת לא יכולה להקצות כתובת מבוקשת.
ENETDOWN 100 זה מוצג אם הרשת מושבתת.
ENETUNREACH 101 היא מוצגת אם לא ניתן להגיע לרשת.
ENETRESET 102 זה מוצג אם הרשת ניתקה את החיבור בעת האיפוס.
סומך 103 הוא מוצג אם תוכנה גרמה לביטול החיבור.
ECONNRESET 104 זה מוצג אם החיבור מאופס על ידי עמית.
ENOBUFS 105 הוא מוצג אם אין שטח חיץ פנוי.
ESKON 106 הוא מוצג אם נקודת הקצה של התחבורה כבר מחוברת.
ENOTCONN 107 הוא מוצג אם נקודת הקצה של התחבורה אינה מחוברת.
ESHUTDOWN 108 הוא מוצג אם המערכת לא יכולה לשלוח לאחר כיבוי נקודת קצה התחבורה.
ETOOMANYREFS 109 הוא מוצג אם יש יותר מדי הפניות: לא ניתן לחבר.
ETIMEDOUT 110 הוא מוצג אם תם הזמן הקצוב לחיבור.
מסורב 111 הוא מוצג אם החיבור נדחה.
EHOSTDOWN 112 הוא מוצג אם המארח מושבת.
EHOSTUNREACH 113 הוא מוצג אם אין מסלול לארח.
כבר מוכנה 114 הוא מוצג אם הפעולה כבר מתבצעת.
כל התקדמות 115 זה מוצג אם הפעולה מתבצעת כעת.
נְקִישָׁה 116 הוא מוצג עבור ידית הקובץ המעוותת.
EUCLEAN 117 הוא מוצג אם המבנה זקוק לניקוי.
מדים 118 הוא מוצג עבור לא קובץ מסוג XENIX בשם.
ENVAIL 119 הוא מוצג אם אין סמפורים זמינים של XENIX.
EISNAM 120 הוא מוצג אם יש קובץ סוג בשם.
EREMOTIO 121 הוא מוצג עבור שגיאת קלט/פלט מרחוק.
EDQUOT 122 הוא מוצג אם חריגה ממכסת הדיסקים.
ENOMEDIUM 123 הוא מוצג אם לא נמצא מדיום.
EMEDIUMTYPE 124 הוא מוצג אם יש סוג בינוני שגוי.
בוטל 125 הוא מוצג אם הפעולה מבוטלת.
ENOKEY 126 הוא מוצג אם המפתח הנדרש אינו זמין.
EKEYEXPIRED 127 הוא מוצג אם פג תוקף המפתח.
EKEYVOKED 128 הוא מוצג אם המפתח נשלל.
EKEY נדחה 129 הוא מוצג אם המפתח נדחה על ידי השירות.
EOWNERDEAD 130 זה מוצג אם הבעלים מת.
ניתן לשחזר 131 הוא מוצג ללא מצב שניתן לשחזר.
ERFKILL 132 היא מוצגת אם הפעולה אינה אפשרית עקב הרג RF.
EHWPOISON 133 הוא מוצג אם בדף הזיכרון יש שגיאת חומרה.