logo

Коди помилок Linux

Коди помилок Linux - це ті коди, які відображаються, якщо в системі сталася помилка під час роботи або використання програми. Помилки можна розпізнати за допомогою кодів помилок. Коди помилок допомагають нам розпізнати джерело помилки.

Якщо ми працюємо в системі Linux, очевидно, що ми можемо зіткнутися з помилками. Деякі помилки можуть бути незначними і не призводити до переривання програми. Але можуть бути деякі помилки, через які система або програма перестають відповідати. Ці помилки можуть призвести до втрати даних або перешкодити завершенню програми. Переважно помилки відображаються у вигляді кодів або повідомлень.

У цьому розділі ми побачимо помилки в програмуванні на C і список можливих помилок у Linux система.

Помилки Linux у програмуванні на C

Досвідчений програміст повинен знати, як боротися з помилками. Мова програмування C не забезпечує прямої підтримки обробки помилок. Ми повинні виявити джерело помилки та усунути її. У мові C повертані значення відображають помилку або успіх. Якщо функція в програмі на C виходить з ладу, ми повинні відповідним чином обробити помилку; інакше він записує останні помилки у файл журналу.

Під час виконання програм на C ми можемо помітити деякі номери помилок, наприклад «Номер помилки: 17». Тут помилка № 17 означає, що файл уже існує. Кожен номер помилки має певне значення.

Мова C підтримує змінну 'помилка .' Використовуючи цю змінну номеру помилки, ми можемо використати деякі функції обробки помилок для належної обробки.

Щоб використовувати номер помилки зовнішньої змінної, ми повинні включити файл заголовка 'errno.h.' Файл заголовка використовується для визначення змінної 'errno'. Змінна errno встановлюється системними викликами та функціями бібліотеки під час виникнення помилки. Є дві важливі функції в Мова програмування C боротися з помилками; помилка і strerror . Функція perror використовується для друку опису помилки, а функція sterror повертає рядок із кодом помилки.

Давайте виведемо список кодів помилок за допомогою errno.

Помилка Linux

Утиліта errno використовується для пошуку кодів errno, назв макросів і відповідних описів. Наприклад, якщо ми надаємо ENOENT у системі Linux, він відображатиме код 2 і опис Немає такого файлу чи каталогу .' Якщо ми надамо код 2, він відобразить ENOENT та його опис .

Якщо утиліта errno не встановлена ​​на нашій машині, вона відобразить помилку таким чином:

Коди помилок Linux

Щоб встановити його, виконайте наведену нижче команду:

 sudo apt install moreutils 

Виконуючи наведену вище команду, на нашій машині встановлюється пакет moreutils, який містить утиліту errno.

Коди помилок Linux

Відобразити список кодів помилок

Щоб відобразити список кодів помилок, виконайте наступну команду:

 errno -l 

Наведена вище команда відобразить список кодів помилок RedHat. Розглянемо наведений нижче результат:

Коди помилок Linux

Відображення інформації про номер помилки

Щоб відобразити інформацію про певний номер помилки, виконайте таку команду:

 errno 2 

Наведена вище команда відобразить опис помилки номер 2. Розгляньте наведений нижче результат:

Коди помилок Linux

Відображення інформації про назву помилки

Щоб відобразити інформацію про певну назву помилки, виконайте команду errno, а потім назву помилки. Наприклад, щоб відобразити інформацію про назву помилки 'ESRCH ,' виконайте команду наступним чином:

 errno ESRCH 

Наведена вище команда відобразить інформацію про вказану назву помилки. Розглянемо наведений нижче результат:

Коди помилок Linux

Відображення помилки за допомогою рядків

Щоб відобразити опис помилки за допомогою рядка з опису, виконайте таку команду:

 errno -s permission 

Наведена вище команда відобразить помилки, опис яких містить дозвіл рядка. Розглянемо наведений нижче результат:

Коди помилок Linux

Список системних помилок Linux

Нижче наведено частковий список можливих помилок системи Linux:

Код помилки помилка № опис
Верхній 1 Він відображається, якщо операція не дозволена.
ENOENT 2 Він відображається, якщо такого файлу немає або каталог існує.
ESRCH 3 Він відображається, якщо такого процесу немає.
EINTR 4 Він відображається для перерваного системного виклику
EIO 5 Він відображається для помилки введення/виведення.
ENXIO 6 Воно відображається, якщо такого пристрою немає або адреса існує.
E2BIG 7 Він відображається, якщо список аргументів задовгий.
ENOEXEC 8 Він відображається, якщо є помилка формату exec
EBADF 9 Відображається у разі неправильного дескриптора файлу.
ЕЧАЙЛД 10 Він відображається, якщо дочірній процес не існує.
ЗНОВУ одинадцять Відображається, якщо ресурс тимчасово недоступний.
ЕНОМЕМ 12 Він відображається, якщо система не може виділити пам'ять.
EACCES 13 Він відображається, якщо в дозволі відмовлено.
ПОМИЛКА 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 Відображається в разі розриву труби.
EDOM 33 Він відображається, якщо числовий аргумент виходить за межі домену.
ERANGE 3. 4 Він відображається, якщо числовий результат виходить за межі діапазону.
EDEADLK 35 Він відображається, якщо вдалося уникнути взаємоблокування ресурсу.
ENAMETOOLONG 36 Він відображається, якщо назва файлу задовга.
ENOLCK 37 Він відображається, якщо немає доступних замків.
ENOSYS 38 Відображається, якщо функція не реалізована.
ЕНОТЕПТИ 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 Відображається у разі недійсного дескриптора запиту.
ПОВНИЙ 54 Відображається, якщо обмін повний.
ENOANO 55 Відображається, якщо анода немає.
EBADRQC 56 Він відображається для недійсного коду запиту.
EBADSLT 57 Він відображається для недійсного слота.
EBFONT 59 Він відображається, якщо є неправильний формат файлу шрифту.
ОДНОБОКИЙ 60 Він відображається, якщо пристрій не є потоковим.
ENODATA 61 Він відображається, якщо дані відсутні.
ETIME 62 Відображається, якщо таймер закінчився.
ENOSR 63 Відображається у разі відсутності потокових ресурсів.
ENONET 64 Він відображається, якщо апарат не в мережі.
ЕНОПКГ 65 Він відображається, якщо пакет не встановлено.
EREMOTE 66 Відображається, якщо об'єкт віддалений.
ENOLINK 67 Воно відображається, якщо зв’язок було розірвано.
EADV 68 Він відображається для помилки оголошення.
ESRMNT 69 Він відображається для помилки Srmount.
ECOMM 70 Воно відображається, якщо під час надсилання сталася помилка зв’язку.
EPROTO 71 Відображається для помилки протоколу.
ЕМУЛЬТИХОП 72 Він відображається для спроби Multihop.
EDOTDOT 73 Він відображається для конкретної помилки RFS.
EBADMSG 74 Воно відображається для поганого повідомлення.
ПЕРЕЛИВ 75 Він відображається, якщо значення завелике для визначеного типу даних.
ENOTUNIQ 76 Воно відображається, якщо ім’я не є унікальним у мережі.
EBADFD 77 Він відображається, якщо дескриптор файлу знаходиться в поганому стані.
ЕРЕМЧГ 78 Він відображається, якщо віддалена адреса змінена.
ЕЛІБАКС 79 Він відображається, якщо ми не можемо отримати доступ до потрібної спільної бібліотеки.
ЕЛІББАД 80 Він відображається у разі доступу до пошкодженої спільної бібліотеки.
ELIBSCN 81 Він відображається, якщо розділ .lib у файлі a.out пошкоджено.
ЕЛІБМАКС 82 Воно відображається, якщо ми намагаємося зв’язати забагато спільних бібліотек.
ELIBEXEC 83 Він відображається, якщо ми не можемо безпосередньо виконати спільну бібліотеку.
EILSEQ 84 Він відображається для недійсного або неповного багатобайтового або широкого символу
ERESTART 85 Він відображається, щоб повідомити про те, що перерваний системний виклик слід перезапустити.
ЕСТРУПКА 86 Він відображається, якщо є помилка каналу потоків.
EUUSERS 87 Він відображається для занадто великої кількості користувачів.
ЕНОТОК 88 Він відображається для роботи сокета на не-сокеті.
EDESTADDRREQ 89 Він відображається, якщо потрібна адреса призначення.
EMSGSIZE 90 Він відображається, якщо повідомлення занадто довге.
ЕПРОТОТИП 91 Він відображається, якщо тип протоколу для сокета неправильний.
ЕНОПРОТООПТ 92 Він відображається, якщо протокол недоступний.
ЕПРОТОНОПІДТРИМКА 93 Відображається, якщо протокол не підтримується.
ESOCKTNOSUPPORT 94 Він відображається, якщо тип Socket не підтримується.
ЕОПНОЦУПП 95 Він відображається, якщо операція не підтримується.
EPFNOSUPPORT 96 Він відображається, якщо сімейство протоколів не підтримується.
EAFNOSUPPORT 97 Він відображається, якщо сімейство адрес не підтримується протоколом.
ЕАДДРІНУС 98 Він відображається, якщо адреса вже використовується.
EADDNOTAVAIL 99 Він відображається, якщо система не може призначити запитану адресу.
ENETDOWN 100 Він відображається, якщо мережа не працює.
ENETUNREACH 101 Він відображається, якщо мережа недоступна.
ENETRESET 102 Відображається, якщо під час скидання з’єднання з мережею було розірвано.
ECONNABORTED 103 Він відображається, якщо програмне забезпечення спричинило переривання з’єднання.
ECONNRESET 104 Він відображається, якщо з’єднання скинуто одноранговим вузлом.
ЕНОБУФС 105 Він відображається, якщо немає вільного місця в буфері.
ЕСКОН 106 Він відображається, якщо транспортна кінцева точка вже підключена.
ENOTCONN 107 Він відображається, якщо транспортна кінцева точка не підключена.
ВИКЛЮЧЕННЯ 108 Воно відображається, якщо система не може надіслати після завершення роботи транспортної кінцевої точки.
ETOOMANYREFS 109 Він відображається, якщо посилань забагато: неможливо з’єднати.
ETIMEDOUT 110 Він відображається, якщо час очікування з’єднання минув.
ECONNREFUSED 111 Він відображається, якщо підключення відмовлено.
EHOSTDOWN 112 Він відображається, якщо хост не працює.
EHOSTUNREACH 113 Він відображається, якщо немає маршруту до хосту.
ВЖЕ 114 Відображається, якщо операція вже виконується.
КОЖЕН ПРОГРЕС 115 Відображається, якщо операція зараз виконується.
НАТИСНІТЬ 116 Він відображається для дескриптора застарілого файлу.
EUCLEAN 117 Відображається, якщо конструкція потребує очищення.
УНІФОРМА 118 Він відображається для файлу типу, що не є іменованим XENIX.
ENAVAIL 119 Він відображається, якщо немає доступних семафорів XENIX.
EISNAM 120 Він відображається, якщо є файл іменованого типу.
EREMOTIO 121 Відображається для помилки віддаленого введення/виведення.
EDQUOT 122 Він відображається, якщо дискова квота перевищена.
ЕНОМЕДІЙ 123 Він відображається, якщо носій не знайдено.
EMEDIUMTYPE 124 Він відображається, якщо тип носія неправильний.
СКАСУВАНО 125 Він відображається, якщо операцію скасовано.
ENOKEY 126 Він відображається, якщо необхідний ключ недоступний.
EKEY МІНЧИВ 127 Він відображається, якщо термін дії ключа закінчився.
EKEY REVOKED 128 Він відображається, якщо ключ було анульовано.
EKEY REJECTED 129 Відображається, якщо ключ відхилено службою.
EOWNERDEAD 130 Відображається, якщо Власник помер.
ЕНОВІДНОВЛЕНИЙ 131 Він відображається для стану, що не підлягає відновленню.
ERFKILL 132 Він відображається, якщо операція неможлива через RF-kill.
EHWISON 133 Він відображається, якщо на сторінці пам’яті є апаратна помилка.