A Linux hibakódok azok a kódok, amelyek akkor jelennek meg, ha hiba történik a rendszerben munka vagy program használata közben. A hibákat hibakódok segítségével lehet felismerni. A hibakódok segítenek a hiba forrásának felismerésében.
Ha Linux rendszeren dolgozunk, nyilvánvaló, hogy hibákba ütközhetünk. Egyes hibák kisebbek lehetnek, és nem vezethetnek a program megszakításához. De előfordulhatnak olyan hibák, amelyek miatt a rendszer vagy a program nem válaszol. Ezek a hibák adatvesztéshez vezethetnek, vagy megakadályozhatják a program befejezését. A hibák többnyire kódok vagy üzenetek formájában jelennek meg.
Ebben a részben a C programozás hibáit és a lehetséges hibák listáját láthatjuk Linux rendszer.
Linux hibák a C programozásban
Egy képzett programozónak tudnia kell, hogyan kezelje a hibákat. A C programozási nyelv nem nyújt közvetlen támogatást a hibakezeléshez. Fel kell derítenünk a hiba forrását és kezelnünk kell. C nyelvben a visszatérési értékek a sikertelenséget vagy a sikert jelzik. Ha egy függvény a C programban meghiúsul, akkor ennek megfelelően kell kezelnünk a hibát; egyébként a hibákat utoljára rögzíti egy naplófájlban.
A C programok végrehajtása során észrevehetünk néhány hibaszámot, például „Hibaszám: 17”. Itt a 17-es hiba azt jelenti, hogy a fájl már létezik. Minden hibaszámnak van valami jelentése.
A C nyelv támogatja a változókat 'hiba .' Ennek a hibaszám-változónak a használatával néhány hibakezelő függvényt használhatunk a megfelelő kezeléshez.
A külső változó hibaszámának használatához tartalmaznunk kell egy fejlécfájlt 'errno.h.' A fejlécfájl az „errno” változó meghatározására szolgál. Az errno változót a rendszerhívások és a könyvtári függvények állítják be a hiba előfordulásakor. Két fontos funkciója van a C programozási nyelv a hibák kezelésére; perror és strerror . A perror függvény a hibaleírás kinyomtatására szolgál, a sterror függvény pedig egy hibakóddal rendelkező karakterláncot ad vissza.
Jelenítsük meg a hibakódok listáját az errno használatával.
Linux hiba
Az errno segédprogram hibakódok, makrónevek és a megfelelő leírások megkeresésére szolgál. Például, ha Linux rendszeren biztosítjuk az ENOENT-t, akkor megjelenik a 2-es kód és a leírás ' Nincs ilyen fájl, vagy könyvtár .' Ha megadjuk a 2-es kódot, akkor megjelenik a ENOENT és leírása .
Ha az errno segédprogram nincs telepítve a gépünkre, akkor a következőképpen jeleníti meg a hibát:
A telepítéshez hajtsa végre az alábbi parancsot:
sudo apt install moreutils
A fenti parancs végrehajtásával a moreutils csomag telepítésre kerül a gépünkre, amely tartalmazza az errno segédprogramot.
Jelenítse meg a hibakódok listáját
A hibakódok listájának megjelenítéséhez hajtsa végre a következő parancsot:
errno -l
A fenti parancs megjeleníti a RedHat hibakódjainak listáját. Vegye figyelembe az alábbi kimenetet:
Jelenítse meg a hibaszám információit
Egy adott hibaszám információinak megjelenítéséhez hajtsa végre a következő parancsot:
errno 2
A fenti parancs megjeleníti a 2-es számú hiba leírását. Vegye figyelembe az alábbi kimenetet:
Jelenítse meg a hibanév információit
Egy adott hibanév információinak megjelenítéséhez hajtsa végre az errno parancsot, majd írja be a hiba nevét. Például egy hibanév információinak megjelenítéséhez „ESRCH , hajtsa végre a parancsot a következőképpen:
errno ESRCH
A fenti parancs megjeleníti a megadott hibanévre vonatkozó információkat. Vegye figyelembe az alábbi kimenetet:
Jelenítse meg a hibát karakterláncok használatával
A hibaleírás megjelenítéséhez a leírásból származó karakterlánc használatával hajtsa végre a parancsot a következőképpen:
errno -s permission
A fenti parancs megjeleníti azokat a hibákat, amelyek leírása karakterlánc-engedélyt tartalmaz. Vegye figyelembe az alábbi kimenetet:
Linux rendszerhibák listája
Az alábbiakban egy részleges lista található a Linux rendszer lehetséges hibáiról:
Hibakód | hiba sz | Leírás |
---|---|---|
Felső | 1 | Akkor jelenik meg, ha a művelet nem engedélyezett. |
ENOENT | 2 | Akkor jelenik meg, ha nincs ilyen fájl vagy könyvtár. |
ESRCH | 3 | Akkor jelenik meg, ha nem létezik ilyen folyamat. |
EINTR | 4 | Megszakadt rendszerhívás esetén jelenik meg |
EIO | 5 | Bemeneti/kimeneti hiba esetén jelenik meg. |
ENXIO | 6 | Akkor jelenik meg, ha nincs ilyen eszköz vagy cím. |
E2BIG | 7 | Akkor jelenik meg, ha az argumentumlista túl hosszú. |
ENOEXEC | 8 | Exec formátum hiba esetén jelenik meg |
EBADF | 9 | Rossz fájlleíró esetén jelenik meg. |
GYERMEK | 10 | Akkor jelenik meg, ha nincs gyermekfolyamat. |
ÚJRA | tizenegy | Akkor jelenik meg, ha az erőforrás átmenetileg nem elérhető. |
ENOMEM | 12 | Akkor jelenik meg, ha a rendszer nem tud memóriát lefoglalni. |
EACCES | 13 | Akkor jelenik meg, ha az engedélyt megtagadják. |
FAULT | 14 | Rossz cím esetén jelenik meg. |
ENOTBLK | tizenöt | Megjelenik, ha az eszköz blokkolása szükséges. |
ELFOGLALT | 16 | Akkor jelenik meg, ha az eszköz vagy az erőforrás foglalt. |
LÉTEZIK | 17 | Akkor jelenik meg, ha a fájl már létezik. |
EXDEV | 18 | Akkor jelenik meg, ha érvénytelen az eszközök közötti kapcsolat. |
ENODEV | 19 | Akkor jelenik meg, ha nincs ilyen eszköz. |
ENOTDIR | húsz | Megjelenik, ha nincs könyvtár. |
EISDIR | huszonegy | Megjelenik, ha van könyvtár. |
EGYEDI VÁLASZTÁS | 22 | Érvénytelen argumentum esetén jelenik meg. |
VEDD FEL | 23 | Akkor jelenik meg, ha túl sok nyitott fájl van a rendszerben. |
HALOTT | 24 | Akkor jelenik meg, ha túl sok nyitott fájl van. |
ENOTTY | 25 | Akkor jelenik meg, ha nem megfelelő ioctl van az eszközhöz. |
ETXTBSY | 26 | Akkor jelenik meg, ha a szövegfájl foglalt. |
EFBIG | 27 | Akkor jelenik meg, ha a fájl túl nagy. |
ENOSPC | 28 | Akkor jelenik meg, ha nincs szabad hely az eszközön. |
ESPIPE | 29 | Illegális keresés esetén jelenik meg. |
EROFS | 30 | Csak olvasható fájlrendszer esetén jelenik meg. |
EMLINK | 31 | Akkor jelenik meg, ha túl sok a hivatkozás. |
EPIPE | 32 | Csőtörés esetén jelenik meg. |
EDOM | 33 | Akkor jelenik meg, ha a numerikus argumentum tartományon kívül van. |
ERANGE | 3. 4 | Akkor jelenik meg, ha a számszerű eredmény a tartományon kívül esik. |
EDEADLK | 35 | Akkor jelenik meg, ha az erőforrások holtpontját sikerült elkerülni. |
ENAMETOOLONG | 36 | Akkor jelenik meg, ha a fájlnév túl hosszú. |
ENOLCK | 37 | Akkor jelenik meg, ha nincs elérhető zár. |
ENOSYS | 38 | Akkor jelenik meg, ha a funkció nincs megvalósítva. |
ENOTEMTY | 39 | Akkor jelenik meg, ha a könyvtár nem üres. |
ELOOP | 40 | Akkor jelenik meg, ha túl sok szintje van a szimbolikus hivatkozásoknak. |
ENOMSG | 42 | Akkor jelenik meg, ha nincs a kívánt típusú üzenet. |
EIDRM | 43 | Az azonosító eltávolítása esetén megjelenik. |
ECHRNG | 44 | Akkor jelenik meg, ha a csatorna száma a tartományon kívül esik. |
EL2NSSYNC | Négy öt | Akkor jelenik meg, ha a 2. szint nincs szinkronizálva. |
EL3HLT | 46 | Akkor jelenik meg, ha a 3. szint le van állítva. |
EL3RST | 47 | A 3. szint visszaállítása esetén jelenik meg. |
ELNRNG | 48 | Akkor jelenik meg, ha a hivatkozás száma tartományon kívül esik. |
EUNATCH | 49 | Akkor jelenik meg, ha a protokoll-illesztőprogram nincs csatlakoztatva. |
ENOCSI | ötven | Akkor jelenik meg, ha nem áll rendelkezésre CSI-struktúra. |
EL2HLT | 51 | Akkor jelenik meg, ha a 2. szint le van állítva. |
AKKOR MÁR | 52 | Érvénytelen csere esetén jelenik meg. |
EBADR | 53 | Érvénytelen kérésleíró esetén jelenik meg. |
EXFULL | 54 | Akkor jelenik meg, ha a csere megtelt. |
ENOANO | 55 | Akkor jelenik meg, ha nincs anód. |
EBADRQC | 56 | Érvénytelen kérési kód esetén jelenik meg. |
EBADSLT | 57 | Érvénytelen slot esetén jelenik meg. |
EBFONT | 59 | Akkor jelenik meg, ha rossz a font fájlformátum. |
EGYOLDALÚ | 60 | Akkor jelenik meg, ha az eszköz nem adatfolyam. |
ENODATA | 61 | Akkor jelenik meg, ha nem állnak rendelkezésre adatok. |
ETIME | 62 | Akkor jelenik meg, ha az időzítő lejárt. |
ENOSR | 63 | Az adatfolyamon kívüli erőforrások esetén jelenik meg. |
ENONET | 64 | Akkor jelenik meg, ha a gép nincs a hálózaton. |
ENOPKG | 65 | Akkor jelenik meg, ha a csomag nincs telepítve. |
EREMOTE | 66 | Akkor jelenik meg, ha az objektum távoli. |
ENOLINK | 67 | Akkor jelenik meg, ha a kapcsolat megszakadt. |
EADV | 68 | Hirdetési hiba miatt jelenik meg. |
ESRMNT | 69 | Srmount hiba esetén jelenik meg. |
ECOMM | 70 | Akkor jelenik meg, ha kommunikációs hiba van a küldéskor. |
EPROTO | 71 | Protokollhiba esetén jelenik meg. |
EMULTIHOP | 72 | Megjelenik a Multihop próbálkozás esetén. |
EDOTDOT | 73 | RFS-specifikus hiba esetén jelenik meg. |
EBADMSG | 74 | Rossz üzenet esetén jelenik meg. |
EOVERFLOW | 75 | Akkor jelenik meg, ha az érték túl nagy a meghatározott adattípushoz. |
ENOTUNIQ | 76 | Akkor jelenik meg, ha a név nem egyedi a hálózaton. |
EBADFD | 77 | Akkor jelenik meg, ha a fájlleíró rossz állapotban van. |
EREMCHG | 78 | Akkor jelenik meg, ha a távoli cím megváltozik. |
ELIBACC | 79 | Akkor jelenik meg, ha nem tudunk hozzáférni egy szükséges megosztott könyvtárhoz. |
ELIBBÁD | 80 | Sérült megosztott könyvtárhoz való hozzáférés esetén jelenik meg. |
ELIBSCN | 81 | Akkor jelenik meg, ha az a.out .lib szakasza sérült. |
ELIBMAX | 82 | Akkor jelenik meg, ha túl sok megosztott könyvtárba próbálunk hivatkozni. |
ELIBEXEC | 83 | Akkor jelenik meg, ha nem tudunk közvetlenül végrehajtani egy megosztott könyvtárat. |
EILSEQ | 84 | Érvénytelen vagy hiányos többbájtos vagy széles karakter esetén jelenik meg |
ERESTART | 85 | Megjelenik, jelezve, hogy a megszakadt rendszerhívást újra kell indítani. |
ESTRPIPE | 86 | Megjelenik, ha streams pipe hiba van. |
FELHASZNÁLÓK | 87 | Túl sok felhasználó számára jelenik meg. |
ENOTSOCK | 88 | Megjelenik, ha nem aljzaton működik. |
EDESTADDRREQ | 89 | Akkor jelenik meg, ha a rendeltetési hely címe szükséges. |
EMSGSIZE | 90 | Akkor jelenik meg, ha az üzenet túl hosszú. |
EPROTOTÍPUS | 91 | Akkor jelenik meg, ha a protokoll nem megfelelő típusú a socket számára. |
ENOPROTOOPT | 92 | Akkor jelenik meg, ha a protokoll nem elérhető. |
EPROTONOSUPPORT | 93 | Akkor jelenik meg, ha a protokoll nem támogatott. |
ESOCKTNOSUPPORT | 94 | Akkor jelenik meg, ha a Socket típusa nem támogatott. |
EOPNOTSUPP | 95 | Akkor jelenik meg, ha a művelet nem támogatott. |
EPFNOSUPPORT | 96 | Akkor jelenik meg, ha a protokollcsalád nem támogatott. |
EAFNOSUPPORT | 97 | Akkor jelenik meg, ha a címcsaládot nem támogatja a protokoll. |
EADDRINUS | 98 | Akkor jelenik meg, ha a cím már használatban van. |
EADDRNOT ELÉRHETŐ | 99 | Akkor jelenik meg, ha a rendszer nem tudja hozzárendelni a kért címet. |
ENETDOWN | 100 | Akkor jelenik meg, ha a hálózat nem működik. |
ENETUNREACH | 101 | Akkor jelenik meg, ha a hálózat nem érhető el. |
ENETRESET | 102 | Akkor jelenik meg, ha a hálózati kapcsolat megszakadt a visszaállításkor. |
ECONNABORTED | 103 | Akkor jelenik meg, ha a szoftver a kapcsolat megszakítását okozta. |
ECONNRESET | 104 | Akkor jelenik meg, ha a kapcsolatot a peer alaphelyzetbe állította. |
ENOBUFS | 105 | Akkor jelenik meg, ha nincs szabad pufferterület. |
ESKON | 106 | Akkor jelenik meg, ha a szállítási végpont már csatlakoztatva van. |
ENOTCONN | 107 | Akkor jelenik meg, ha a szállítási végpont nincs csatlakoztatva. |
KIKAPCSOLÁS | 108 | Akkor jelenik meg, ha a rendszer nem tud küldeni a szállítási végpont leállítása után. |
ETOOMANYREFS | 109 | Megjelenik, ha túl sok hivatkozás van: nem lehet splice. |
ETIMEDOUT | 110 | Akkor jelenik meg, ha a kapcsolat lejárt. |
ELFOGADOTT | 111 | Megjelenik, ha a csatlakozást elutasítják. |
EHOSTDOWN | 112 | Akkor jelenik meg, ha a gazdagép nem működik. |
EHOSTUNREACH | 113 | Akkor jelenik meg, ha nincs útvonal a gazdagéphez. |
MÁR | 114 | Akkor jelenik meg, ha a művelet már folyamatban van. |
MINDEN HALADÁS | 115 | Megjelenik, ha a művelet folyamatban van. |
KATTINTÁS | 116 | Az elavult fájlkezelőnél jelenik meg. |
EUCLEAN | 117 | Megjelenik, ha a szerkezet tisztításra szorul. |
EGYENRUHA | 118 | Nem XENIX nevű típusú fájl esetén jelenik meg. |
ENAVAIL | 119 | Akkor jelenik meg, ha nem állnak rendelkezésre XENIX szemaforok. |
EISNAM | 120 | Megjelenik, ha van elnevezett típusú fájl. |
EREMOTIO | 121 | Távoli I/O hiba esetén jelenik meg. |
EDQUOT | 122 | A lemezkvóta túllépése esetén jelenik meg. |
ENOMEDIUM | 123 | Akkor jelenik meg, ha nem található adathordozó. |
EMEDIUMTYPE | 124 | Akkor jelenik meg, ha rossz adathordozó típus van. |
TÖRÖLVE | 125 | Akkor jelenik meg, ha a művelet megszakad. |
ENOKEY | 126 | Megjelenik, ha a szükséges kulcs nem elérhető. |
EKEY LEJÁRT | 127 | Akkor jelenik meg, ha a kulcs lejárt. |
EKEYREVOKED | 128 | Akkor jelenik meg, ha a kulcsot visszavonták. |
EKEY ELUTASÍTVA | 129 | Akkor jelenik meg, ha a kulcsot a szerviz elutasította. |
EOWNERDEAD | 130 | Akkor jelenik meg, ha a tulajdonos meghalt. |
NEM HELYEZHETŐ | 131 | Visszaállíthatatlan állapot esetén jelenik meg. |
ERFKILL | 132 | Akkor jelenik meg, ha a művelet nem lehetséges az RF-kill miatt. |
EHWPOISON | 133 | Akkor jelenik meg, ha a memóriaoldalon hardverhiba van. |