Kody błędów systemu Linux to te kody, które są wyświetlane, jeśli w systemie wystąpi błąd podczas pracy lub używania programu. Błędy można rozpoznać za pomocą kodów błędów. Kody błędów pomagają nam w rozpoznaniu źródła błędu.
Jeśli pracujemy na systemie Linux, oczywistym jest, że możemy napotkać błędy. Niektóre błędy mogą być drobne i nie mogą prowadzić do przerwania programu. Mogą jednak wystąpić pewne błędy, które mogą spowodować, że system lub program przestanie odpowiadać. Błędy te mogą prowadzić do utraty danych lub uniemożliwić zakończenie programu. Najczęściej błędy są wyświetlane w postaci kodów lub komunikatów.
W tej sekcji zobaczymy błędy w programowaniu w C oraz listę możliwych błędów w programie Linuksa system.
Błędy Linuksa w programowaniu C
Doświadczony programista powinien wiedzieć, jak radzić sobie z błędami. Język programowania C nie zapewnia bezpośredniego wsparcia dla obsługi błędów. Musimy wykryć źródło błędu i sobie z nim poradzić. W języku C zwracane wartości wskazują niepowodzenie lub sukces. Jeśli funkcja w programie C nie powiedzie się, musimy odpowiednio zareagować na błąd; w przeciwnym razie zapisuje błędy jako ostatnie w pliku dziennika.
Podczas wykonywania programów w języku C możemy zauważyć pewne numery błędów, takie jak „Błąd nr to: 17”. Tutaj błąd nr 17 oznacza, że plik już istnieje. Każdy numer błędu ma jakieś znaczenie.
Język C obsługuje zmienne „błąd nr .' Używając tej zmiennej numeru błędu, możemy użyć niektórych funkcji obsługi błędów, aby poprawnie sobie z nimi poradzić.
Aby użyć numeru błędu zmiennej zewnętrznej, musimy dołączyć plik nagłówkowy „errno.h.” Plik nagłówkowy służy do zdefiniowania zmiennej „errno”. Zmienna errno jest ustawiana przez wywołania systemowe i funkcje biblioteczne w przypadku wystąpienia błędu. Istnieją dwie ważne funkcje w Język programowania C radzić sobie z błędami; błąd I strerror . Funkcja perror służy do wydrukowania opisu błędu, a funkcja sterror zwraca ciąg znaków zawierający kod błędu.
Wyświetlmy listę kodów błędów za pomocą errno.
Linux chyba
Narzędzie errno służy do wyszukiwania kodów errno, nazw makr i odpowiadających im opisów. Na przykład, jeśli udostępnimy ENOENT w systemie Linux, wyświetli się kod 2 i opis ' Nie ma takiego pliku ani katalogu .' Jeśli podamy kod 2, wyświetli się ENOENT i jego opis .
Jeśli na naszym komputerze nie jest zainstalowane narzędzie errno, wyświetli ono błąd w następujący sposób:
Aby go zainstalować, wykonaj poniższe polecenie:
sudo apt install moreutils
Wykonując powyższe polecenie, na naszym komputerze zostanie zainstalowany pakiet moreutils zawierający narzędzie errno.
Wyświetl listę kodów błędów
Aby wyświetlić listę kodów błędów, wykonaj polecenie w następujący sposób:
errno -l
Powyższe polecenie wyświetli listę kodów błędów RedHata. Rozważ poniższe dane wyjściowe:
Wyświetla informację o numerze błędu
Aby wyświetlić informację o konkretnym numerze błędu należy wykonać polecenie w następujący sposób:
errno 2
Powyższe polecenie wyświetli opis błędu nr 2. Rozważ poniższe dane wyjściowe:
Wyświetla informacje o nazwie błędu
Aby wyświetlić informacje o konkretnej nazwie błędu, wykonaj polecenie errno, po którym należy podać nazwę błędu. Na przykład, aby wyświetlić informację o nazwie błędu „ESRCH ”, wykonaj polecenie w następujący sposób:
errno ESRCH
Powyższe polecenie wyświetli informację o podanej nazwie błędu. Rozważ poniższe dane wyjściowe:
Wyświetl błąd za pomocą ciągów
Aby wyświetlić opis błędu przy użyciu ciągu znaków z opisu, wykonaj polecenie w następujący sposób:
errno -s permission
Powyższe polecenie wyświetli błędy, których opis zawiera uprawnienia string. Rozważ poniższe dane wyjściowe:
Lista błędów systemu Linux
Poniżej znajduje się częściowa lista możliwych błędów systemu Linux:
Kod błędu | błąd nr | Opis |
---|---|---|
Górny | 1 | Jest wyświetlany, jeśli operacja jest niedozwolona. |
ENOENT | 2 | Jest wyświetlany, jeśli nie istnieje taki plik lub katalog. |
ESRCH | 3 | Jest wyświetlany, jeśli taki proces nie istnieje. |
EINTR | 4 | Jest wyświetlany w przypadku przerwanego wywołania systemowego |
EIO | 5 | Jest wyświetlany w przypadku błędu wejścia/wyjścia. |
ENXIO | 6 | Wyświetla się, jeśli nie ma takiego urządzenia lub adresu. |
E2BIG | 7 | Jest wyświetlany, jeśli lista argumentów jest zbyt długa. |
ENOEXEC | 8 | Jest wyświetlany, jeśli wystąpił błąd formatu exec |
EBADF | 9 | Jest wyświetlany w przypadku złego deskryptora pliku. |
DZIECKO | 10 | Jest wyświetlany, jeśli nie istnieje żaden proces potomny. |
PONOWNIE | jedenaście | Jest wyświetlany, jeśli zasób jest chwilowo niedostępny. |
ENOMEM | 12 | Jest wyświetlany, jeśli system nie może przydzielić pamięci. |
DOJAZD | 13 | Jest wyświetlany w przypadku odmowy pozwolenia. |
BŁĄD | 14 | Jest wyświetlany, jeśli istnieje zły adres. |
ENOTBLK | piętnaście | Jest wyświetlany, jeśli wymagane jest Zablokuj urządzenie. |
ZAJĘTY | 16 | Jest wyświetlany, jeśli urządzenie lub zasób jest zajęty. |
ISTNIEJE | 17 | Jest wyświetlany, jeśli plik już istnieje. |
EXDEW | 18 | Jest wyświetlany, jeśli istnieje nieprawidłowe połączenie między urządzeniami. |
ENODEW | 19 | Wyświetla się, jeśli nie ma takiego urządzenia. |
ENOTDIR | 20 | Jest wyświetlany, jeśli nie ma katalogu. |
EISDIR | dwadzieścia jeden | Jest wyświetlany, jeśli istnieje katalog. |
JEDEN WYBÓR | 22 | Jest wyświetlany, jeśli istnieje nieprawidłowy argument. |
WŁĄCZAĆ | 23 | Jest wyświetlany, jeśli w systemie jest zbyt wiele otwartych plików. |
MARTWY | 24 | Jest wyświetlany, jeśli jest zbyt wiele otwartych plików. |
ENOTTY | 25 | Jest wyświetlany, jeśli dla urządzenia występuje nieodpowiedni ioctl. |
ETXTBSY | 26 | Jest wyświetlany, jeśli plik tekstowy jest zajęty. |
EFBIG | 27 | Jest wyświetlany, jeśli plik jest za duży. |
ENOSPC | 28 | Jest wyświetlany, jeśli na urządzeniu nie ma wolnego miejsca. |
ESPIPE | 29 | Jest wyświetlany w przypadku nielegalnego wyszukiwania. |
EROFS | 30 | Jest wyświetlany w przypadku systemu plików tylko do odczytu. |
EMLINK | 31 | Jest wyświetlany, jeśli jest zbyt wiele linków. |
EPIPA | 32 | Wyświetla się w przypadku pęknięcia rury. |
EDOM | 33 | Jest wyświetlany, jeśli argument numeryczny jest poza dziedziną. |
ERANGE | 3. 4 | Jest wyświetlany, jeśli wynik numeryczny jest poza zakresem. |
EDEADLK | 35 | Jest wyświetlany, jeśli uniknięto zakleszczenia zasobów. |
ENAZWATOOLONG | 36 | Jest wyświetlany, jeśli nazwa pliku jest za długa. |
ENOLCK | 37 | Jest wyświetlany, jeśli nie są dostępne żadne blokady. |
ENOSYS | 38 | Jest wyświetlany, jeśli funkcja nie jest zaimplementowana. |
ENOTEMPCJA | 39 | Jest wyświetlany, jeśli katalog nie jest pusty. |
ELOOP | 40 | Jest wyświetlany, jeśli istnieje zbyt wiele poziomów dowiązań symbolicznych. |
ENOMSG | 42 | Jest wyświetlany, jeśli nie ma komunikatu żądanego typu. |
EIDRM | 43 | Jest wyświetlany, jeśli identyfikator został usunięty. |
EKHRNG | 44 | Jest wyświetlany, jeśli numer kanału jest poza zakresem. |
EL2NSYNC | Cztery pięć | Jest wyświetlany, jeśli poziom 2 nie jest zsynchronizowany. |
EL3HLT | 46 | Jest wyświetlany, jeśli poziom 3 jest zatrzymany. |
EL3RST | 47 | Jest wyświetlany, jeśli poziom 3 został zresetowany. |
ELNRNG | 48 | Jest wyświetlany, jeśli numer łącza jest poza zakresem. |
EUNATCH | 49 | Jest wyświetlany, jeśli sterownik protokołu nie jest podłączony. |
ENOCSI | pięćdziesiąt | Jest wyświetlany, jeśli nie ma dostępnej struktury CSI. |
EL2HLT | 51 | Jest wyświetlany, jeśli poziom 2 jest zatrzymany. |
BYŁO | 52 | Wyświetla się w przypadku nieprawidłowej wymiany. |
EBADR | 53 | Jest wyświetlany w przypadku nieprawidłowego deskryptora żądania. |
WYPEŁNIONY | 54 | Jest wyświetlany, jeśli wymiana jest pełna. |
ENOAN | 55 | Jest wyświetlany w przypadku braku anody. |
EBADRQC | 56 | Jest wyświetlany w przypadku nieprawidłowego kodu żądania. |
EBADSLT | 57 | Jest wyświetlany w przypadku nieprawidłowego gniazda. |
EBFONT | 59 | Jest wyświetlany, jeśli plik czcionki ma zły format. |
JEDNOSTRONNY | 60 | Jest wyświetlany, jeśli urządzenie nie jest strumieniem. |
ENODATA | 61 | Jest wyświetlany, jeśli nie ma dostępnych danych. |
CZAS | 62 | Jest wyświetlany w przypadku wygaśnięcia timera. |
ENOSR | 63 | Jest wyświetlany w przypadku wyczerpania się zasobów strumieniowych. |
ENONET | 64 | Jest wyświetlany, jeśli urządzenie nie jest w sieci. |
ENOPKG | 65 | Jest wyświetlany, jeśli pakiet nie jest zainstalowany. |
EREMOT | 66 | Jest wyświetlany, jeśli obiekt jest zdalny. |
ENOLINK | 67 | Jest wyświetlany, jeśli łącze zostało zerwane. |
EADV | 68 | Jest wyświetlany w przypadku błędu reklamowania. |
ESRMNT | 69 | Jest wyświetlany w przypadku błędu Srmount. |
ECOMM | 70 | Jest wyświetlany, jeśli podczas wysyłania wystąpił błąd komunikacji. |
EPROTO | 71 | Jest wyświetlany w przypadku błędu protokołu. |
EMULTIHOP | 72 | Jest wyświetlany w przypadku próby Multihop. |
EDOTDOT | 73 | Jest wyświetlany w przypadku błędu specyficznego dla RFS. |
EBADMSG | 74 | Jest wyświetlany w przypadku nieprawidłowego komunikatu. |
PRZEPŁYW | 75 | Jest wyświetlany, jeśli wartość jest zbyt duża dla określonego typu danych. |
ENOTUNIQ | 76 | Jest wyświetlany, jeśli nazwa nie jest unikalna w sieci. |
EBADFD | 77 | Jest wyświetlany, jeśli deskryptor pliku jest w złym stanie. |
EREMCHG | 78 | Jest wyświetlany, jeśli adres zdalny został zmieniony. |
ELIBACC | 79 | Jest wyświetlany, jeśli nie możemy uzyskać dostępu do potrzebnej biblioteki współdzielonej. |
ELIBBAD | 80 | Jest wyświetlany w przypadku dostępu do uszkodzonej biblioteki współdzielonej. |
ELIBSCN | 81 | Jest wyświetlany, jeśli sekcja .lib w pliku a.out jest uszkodzona. |
ELIBMAX | 82 | Jest wyświetlany, jeśli próbujemy połączyć zbyt wiele bibliotek współdzielonych. |
ELIBEXEC | 83 | Jest wyświetlany, jeśli nie możemy bezpośrednio uruchomić biblioteki współdzielonej. |
EILSEQ | 84 | Jest wyświetlany w przypadku nieprawidłowego lub niekompletnego znaku wielobajtowego lub szerokiego |
ERESTART | 85 | Wyświetlany jest w celu poinformowania o konieczności ponownego uruchomienia przerwanej wywołania systemowego. |
RURA ESTROJOWA | 86 | Jest wyświetlany, jeśli występuje błąd potoku strumieniowego. |
EUSERY | 87 | Jest wyświetlany zbyt wielu użytkownikom. |
ENOTSOCK | 88 | Jest wyświetlany w przypadku pracy z gniazdem na komputerze innym niż gniazdo. |
EDESTADDRREQ | 89 | Jest wyświetlany, jeśli wymagany jest adres docelowy. |
ROZMIAR EMSG | 90 | Jest wyświetlany, jeśli wiadomość jest za długa. |
EPROTOTYP | 91 | Jest wyświetlany, jeśli typ protokołu jest nieprawidłowy dla gniazda. |
ENOPROTOOPT | 92 | Jest wyświetlany, jeśli protokół nie jest dostępny. |
WSPARCIE EPROTONOS | 93 | Jest wyświetlany, jeśli protokół nie jest obsługiwany. |
WSPARCIE ESOCKTN | 94 | Jest wyświetlany, jeśli typ gniazda nie jest obsługiwany. |
EOPNOTSUPP | 95 | Jest wyświetlany, jeśli operacja nie jest obsługiwana. |
WSPARCIE EPFNOS | 96 | Jest wyświetlany, jeśli rodzina protokołów nie jest obsługiwana. |
WSPARCIE EAFNO | 97 | Jest wyświetlany, jeśli rodzina adresów nie jest obsługiwana przez protokół. |
EADDRINUS | 98 | Jest wyświetlany, jeśli adres jest już używany. |
EADDRNOTAVAIL | 99 | Wyświetla się, jeśli system nie może przypisać żądanego adresu. |
ENETDÓŁ | 100 | Jest wyświetlany, jeśli sieć nie działa. |
ENETUNREACH | 101 | Jest wyświetlany, jeśli sieć jest nieosiągalna. |
ENETRESET | 102 | Jest wyświetlany, jeśli sieć zerwała połączenie podczas resetowania. |
EKONNABOROWANY | 103 | Jest wyświetlany, jeśli oprogramowanie spowodowało przerwanie połączenia. |
ECONNRESET | 104 | Jest wyświetlany, jeśli połączenie zostanie zresetowane przez peera. |
ENOBUFS | 105 | Jest wyświetlany, jeśli nie ma dostępnego miejsca w buforze. |
ESKON | 106 | Jest wyświetlany, jeśli punkt końcowy transportu jest już podłączony. |
ENOTCONN | 107 | Jest wyświetlany, jeśli punkt końcowy transportu nie jest podłączony. |
WYŁĄCZENIE | 108 | Jest wyświetlany, jeśli system nie może wysyłać po zamknięciu punktu końcowego transportu. |
ETOOMANYREFS | 109 | Jest wyświetlany, jeśli jest zbyt wiele odniesień: nie można połączyć. |
ETIMEDOUT | 110 | Jest wyświetlany, jeśli upłynął limit czasu połączenia. |
ODMÓWIONY | 111 | Jest wyświetlany w przypadku odmowy połączenia. |
EHOSTDOWN | 112 | Jest wyświetlany, jeśli host nie działa. |
EHOSTUNREACH | 113 | Jest wyświetlany, jeśli nie ma trasy do hosta. |
JUŻ | 114 | Jest wyświetlany, jeśli operacja jest już w toku. |
KAŻDY POSTĘP | 115 | Jest wyświetlany, jeśli operacja jest w toku. |
KLIKNIJ | 116 | Jest wyświetlany dla uchwytu nieaktualnego pliku. |
EUCZYSTOŚĆ | 117 | Jest wyświetlany, jeśli konstrukcja wymaga czyszczenia. |
MUNDUR | 118 | Jest wyświetlany dla pliku nie o nazwie typu XENIX. |
PRZYJDŹ | 119 | Jest wyświetlany, jeśli nie ma dostępnych semaforów XENIX. |
EISNAM | 120 | Jest wyświetlany, jeśli istnieje plik o nazwanym typie. |
EREMOCJA | 121 | Jest wyświetlany w przypadku błędu zdalnego wejścia/wyjścia. |
EDCYT | 122 | Jest wyświetlany w przypadku przekroczenia limitu miejsca na dysku. |
ENOMEDIUM | 123 | Jest wyświetlany, jeśli nie znaleziono nośnika. |
TYP ŚREDNI | 124 | Jest wyświetlany w przypadku nieprawidłowego typu nośnika. |
ANULOWANY | 125 | Jest wyświetlany, jeśli operacja została anulowana. |
ENOKEY | 126 | Jest wyświetlany, jeśli wymagany klawisz nie jest dostępny. |
EKEY wygasł | 127 | Jest wyświetlany, jeśli ważność klucza wygasła. |
EKEYODWOŁANY | 128 | Jest wyświetlany, jeśli klucz został unieważniony. |
EKEYODRZUCONY | 129 | Wyświetla się, jeśli klucz został odrzucony przez serwis. |
EWŁAŚCICIEL NIE żyje | 130 | Jest wyświetlany, jeśli właściciel zmarł. |
ENOODZYSKIWALNE | 131 | Jest wyświetlany, gdy nie można odzyskać stanu. |
ERFKILL | 132 | Jest wyświetlany, jeśli operacja nie jest możliwa ze względu na funkcję RF-kill. |
TRUCIZNA | 133 | Jest wyświetlany, jeśli strona pamięci zawiera błąd sprzętowy. |