Linux エラー コードは、プログラムの作業中または使用中にシステムでエラーが発生した場合に表示されるコードです。エラーは、エラー コードを利用して認識できます。エラー コードは、エラーの原因を認識するのに役立ちます。
Linux システムで作業している場合、エラーが発生する可能性があることは明らかです。一部のエラーは軽微なものであり、プログラムの中断につながるものではない場合があります。ただし、システムやプログラムの応答停止を引き起こすエラーが発生する可能性があります。これらのエラーにより、データが失われたり、プログラムが完了できなくなる可能性があります。ほとんどのエラーはコードまたはメッセージの形式で表示されます。
このセクションでは、C プログラミングのエラーと、C プログラミングで発生する可能性のあるエラーのリストを見ていきます。 Linux システム。
C プログラミングにおける Linux エラー
熟練したプログラマは、エラーへの対処方法を知っている必要があります。 C プログラミング言語は、エラー処理の直接のサポートを提供しません。エラーの原因を検出して対処する必要があります。 C 言語では、戻り値に失敗または成功が表示されます。 C プログラム内の関数が失敗した場合は、それに応じてエラーを処理する必要があります。それ以外の場合は、ログ ファイルの最後にエラーが記録されます。
C プログラムの実行中に、「エラー番号: 17」などのエラー番号が表示される場合があります。ここで、エラー番号 17 は、ファイルがすでに存在していることを意味します。すべてのエラー番号には意味があります。
C言語は変数をサポートしています 'エラーいいえ 。」このエラー番号変数を使用すると、いくつかのエラー処理関数を使用してエラーを適切に処理できます。
外部変数エラー番号を使用するには、ヘッダー ファイルをインクルードする必要があります。 「errno.h」 ヘッダー ファイルは、「errno」変数を定義するために使用されます。 errno変数は、エラー発生時にシステムコールおよびライブラリ関数によって設定されます。には 2 つの重要な機能があります。 C プログラミング言語 エラーに対処するため。 恐怖 そして ストエラー 。 perror 関数はエラーの説明を出力するために使用され、sterror 関数はエラー コードを含む文字列を返します。
errnoを使ってエラーコードの一覧を表示してみましょう。
Linux エラー番号
errno ユーティリティは、errno コード、マクロ名、および対応する説明を検索するために使用されます。たとえば、Linux システムで ENOENT を提供すると、コード 2 と説明が表示されます。 ' そのようなファイル、又はディレクトリはありません 。」コード 2 を指定すると、 ENOENT とその説明 。
errno ユーティリティがマシンにインストールされていない場合は、次のようなエラーが表示されます。
インストールするには、以下のコマンドを実行します。
sudo apt install moreutils
上記のコマンドを実行すると、errno ユーティリティを含む moreutils パッケージがマシンにインストールされます。
エラーコード一覧を表示する
エラーコードの一覧を表示するには、次のようにコマンドを実行します。
errno -l
上記のコマンドは、RedHat によるエラー コードのリストを表示します。以下の出力を考えてみましょう。
エラー番号の情報を表示する
特定のエラー番号の情報を表示するには、次のようにコマンドを実行します。
errno 2
上記のコマンドを実行すると、エラー番号 2 の説明が表示されます。次の出力を考慮してください。
エラー名の情報を表示する
特定のエラー名の情報を表示するには、errno コマンドに続いてエラー名を実行します。たとえば、エラー名の情報を表示するには エスアールチ ,' 次のようにコマンドを実行します。
errno ESRCH
上記のコマンドは、指定されたエラー名に関する情報を表示します。以下の出力を考えてみましょう。
文字列を使用してエラーを表示する
説明の文字列を使用してエラーの説明を表示するには、次のようにコマンドを実行します。
errno -s permission
上記のコマンドは、説明に文字列権限が含まれるエラーを表示します。以下の出力を考えてみましょう。
Linux システムエラーのリスト
以下は、Linux システムで発生する可能性のあるエラーの部分的なリストです。
エラーコード | エラーいいえ | 説明 |
---|---|---|
アッパー | 1 | 操作が許可されていない場合に表示されます。 |
エノエント | 2 | 該当するファイルまたはディレクトリが存在しない場合に表示されます。 |
エスアールチ | 3 | 該当するプロセスが存在しない場合に表示されます。 |
EINTR | 4 | 中断されたシステムコールの場合に表示されます |
EIO | 5 | 入出力エラーの場合に表示されます。 |
エンクシオ | 6 | 該当するデバイスがない場合、またはアドレスが存在しない場合に表示されます。 |
E2BIG | 7 | 引数リストが長すぎる場合に表示されます。 |
ENOEXEC | 8 | 実行フォーマットエラーがある場合に表示されます |
EBADF | 9 | ファイル記述子が不正な場合に表示されます。 |
エチャイルド | 10 | 子プロセスが存在しない場合に表示されます。 |
もう一度 | 十一 | リソースが一時的に利用できない場合に表示されます。 |
エノメム | 12 | システムがメモリを割り当てられない場合に表示されます。 |
アクセス | 13 | 許可が拒否された場合に表示されます。 |
過失 | 14 | 不正なアドレスがある場合に表示されます。 |
ENOTBLK | 15 | ブロックデバイスが必要な場合に表示されます。 |
忙しい | 16 | デバイスまたはリソースがビジーな場合に表示されます。 |
存在する | 17 | ファイルが既に存在する場合に表示されます。 |
EXDEV | 18 | 無効なクロスデバイスリンクがある場合に表示されます。 |
エノデブ | 19 | 該当するデバイスがない場合に表示されます。 |
エノティル | 二十 | ディレクトリがない場合に表示されます。 |
エイスディル | 21 | ディレクトリがある場合に表示されます。 |
単一選択 | 22 | 無効な引数があった場合に表示されます。 |
つける | 23 | システム内で開いているファイルが多すぎる場合に表示されます。 |
死んだ | 24 | 開いているファイルが多すぎる場合に表示されます。 |
イノッティ | 25 | デバイスに不適切な ioctl がある場合に表示されます。 |
ETXTBSY | 26 | テキストファイルがビジー状態の場合に表示されます。 |
エフビッグ | 27 | ファイルが大きすぎる場合に表示されます。 |
ENOSPC | 28 | デバイスに空き容量が残っていない場合に表示されます。 |
エスパイプ | 29 | 不正シークの場合に表示されます。 |
エロフス | 30 | 読み取り専用ファイルシステムの場合に表示されます。 |
エムリンク | 31 | リンクが多すぎる場合に表示されます。 |
エピペ | 32 | 配管が破損した場合に表示されます。 |
エドム | 33 | 数値引数が定義域外の場合に表示されます。 |
エラーン | 3.4 | 数値結果が範囲外の場合に表示されます。 |
エデッドク | 35 | リソースのデッドロックが回避された場合に表示されます。 |
エナメトゥーロング | 36 | ファイル名が長すぎる場合に表示されます。 |
エノルク | 37 | 利用可能なロックがない場合に表示されます。 |
エノシス | 38 | 機能が実装されていない場合に表示されます。 |
緊急 | 39 | ディレクトリが空でない場合に表示されます。 |
エループ | 40 | シンボリック リンクのレベルが多すぎる場合に表示されます。 |
ENOMSG | 42 | 希望する種類のメッセージがない場合に表示されます。 |
EIDRM | 43 | 識別子が削除された場合に表示されます。 |
エクレング | 44 | チャンネル番号が範囲外の場合に表示されます。 |
EL2NSYNC | 4つ。 | レベル2が同期していない場合に表示されます。 |
EL3HLT | 46 | レベル3が停止している場合に表示されます。 |
EL3RST | 47 | レベル3をリセットすると表示されます。 |
エルンリング | 48 | リンク番号が範囲外の場合に表示されます。 |
イナッチ | 49 | プロトコルドライバーがアタッチされていない場合に表示されます。 |
エノクシ | 50 | 利用可能な CSI 構造がない場合に表示されます。 |
EL2HLT | 51 | レベル2が停止している場合に表示されます。 |
それはそうだった | 52 | 無効な交換の場合に表示されます。 |
エバドル | 53 | リクエストディスクリプタが不正な場合に表示されます。 |
完全に削除 | 54 | 交換がいっぱいの場合に表示されます。 |
ENOANO | 55 | アノード無しの場合に表示されます。 |
EBADRQC | 56 | リクエストコードが不正な場合に表示されます。 |
EBADSLT | 57 | 無効なスロットの場合に表示されます。 |
エフォント | 59 | フォントファイル形式が不正な場合に表示されます。 |
片面 | 60 | デバイスがストリームでない場合に表示されます。 |
エノデータ | 61 | データがない場合に表示されます。 |
イータイム | 62 | タイマーが切れた場合に表示されます。 |
ENOSR | 63 | ストリームリソースが不足している場合に表示されます。 |
イーノネット | 64 | 本機がネットワーク上にない場合に表示されます。 |
ENOPKG | 65 | パッケージがインストールされていない場合に表示されます。 |
エレモート | 66 | オブジェクトがリモートの場合に表示されます。 |
イノリンク | 67 | リンクが切断されている場合に表示されます。 |
EADV | 68 | アドバタイズエラーの場合に表示されます。 |
ESRMNT | 69 | Srmountエラーの場合に表示されます。 |
ECOMM | 70 | 送信時に通信エラーが発生した場合に表示されます。 |
エプロト | 71 | プロトコルエラーの場合に表示されます。 |
エマルティホップ | 72 | マルチホップを試みた場合に表示されます。 |
エドドット | 73 | RFS 固有のエラーの場合に表示されます。 |
EBADMSG | 74 | Bad messageの場合に表示されます。 |
イオーバーフロー | 75 | 値が定義されたデータ型に対して大きすぎる場合に表示されます。 |
エノユニク | 76 | 名前がネットワーク上で一意でない場合に表示されます。 |
EBADFD | 77 | ファイル記述子の状態が悪い場合に表示されます。 |
エレムチ | 78 | リモートアドレスが変更された場合に表示されます。 |
エリバック | 79 | 必要な共有ライブラリにアクセスできない場合に表示されます。 |
エリブバド | 80 | 破損した共有ライブラリにアクセスした場合に表示されます。 |
ELIBSCN | 81 | a.out に .lib セクションが破損している場合に表示されます。 |
エリブマックス | 82 | リンクしようとしている共有ライブラリが多すぎる場合に表示されます。 |
エリベセック | 83 | 共有ライブラリを直接実行できない場合に表示されます。 |
EILSEQ | 84 | 無効または不完全なマルチバイト文字またはワイド文字の場合に表示されます |
再スタート | 85 | 中断されたシステムコールを再開する必要があることを通知するために表示されます。 |
エストリップパイプ | 86 | ストリームパイプエラーがある場合に表示されます。 |
使用者 | 87 | ユーザーが多すぎる場合に表示されます。 |
エノソック | 88 | 非ソケットでのソケット操作の場合に表示されます。 |
EDESTADDRREQ | 89 | 宛先アドレスが必要な場合に表示されます。 |
EMSGSIZE | 90 | メッセージが長すぎる場合に表示されます。 |
エプロトタイプ | 91 | ソケットのプロトコルのタイプが間違っている場合に表示されます。 |
エノプロトオプト | 92 | プロトコルが利用できない場合に表示されます。 |
エプロトノサポート | 93 | プロトコルがサポートされていない場合に表示されます。 |
ESOCKTNOSサポート | 94 | ソケットタイプがサポートされていない場合に表示されます。 |
エオプノツプ | 95 | サポートされていない操作の場合に表示されます。 |
EPFNOサポート | 96 | プロトコル ファミリがサポートされていない場合に表示されます。 |
EAFNOサポート | 97 | アドレス ファミリがプロトコルでサポートされていない場合に表示されます。 |
エアドリヌス | 98 | すでに使用されているアドレスの場合に表示されます。 |
EADDRNOTAVAIL | 99 | システムが要求されたアドレスを割り当てることができない場合に表示されます。 |
イーネットダウン | 100 | ネットワークがダウンしている場合に表示されます。 |
ENETUNREACH | 101 | ネットワークに到達できない場合に表示されます。 |
エネットリセット | 102 | リセット時にネットワークが接続を切断した場合に表示されます。 |
協力者 | 103 | ソフトウェアによって接続が中断された場合に表示されます。 |
接続リセット | 104 | ピアによって接続がリセットされた場合に表示されます。 |
イノブフス | 105 | 利用可能なバッファ領域がない場合に表示されます。 |
エスコン | 106 | トランスポート エンドポイントがすでに接続されている場合に表示されます。 |
エノトコン | 107 | トランスポートエンドポイントが接続されていない場合に表示されます。 |
シャットダウン | 108 | トランスポート エンドポイントのシャットダウン後にシステムが送信できない場合に表示されます。 |
エトゥーマニーレフス | 109 | 参照が多すぎる場合に表示されます: スプライスできません。 |
Eタイムアウト | 110 | 接続がタイムアウトした場合に表示されます。 |
サービス拒否 | 111 | 接続が拒否された場合に表示されます。 |
Eホストダウン | 112 | ホストがダウンしている場合に表示されます。 |
イーホスタンリーチ | 113 | ホストへの経路がない場合に表示されます。 |
すでに | 114 | すでに操作が実行中の場合に表示されます。 |
それぞれの進歩 | 115 | 操作が進行中の場合に表示されます。 |
クリック | 116 | Staleファイルハンドルの場合に表示されます。 |
ユークリーン | 117 | 構造物にクリーニングが必要な場合に表示されます。 |
ユニフォーム | 118 | XENIX 名前付きタイプのファイルではない場合に表示されます。 |
エナベイル | 119 | 使用可能な XENIX セマフォがない場合に表示されます。 |
エイスナム | 120 | 名前付きタイプのファイルがある場合に表示されます。 |
エレモティオ | 121 | リモートI/Oエラーの場合に表示されます。 |
エドクォート | 122 | ディスククォータを超過した場合に表示されます。 |
エノメディアム | 123 | メディアが見つからない場合に表示されます。 |
メディアタイプ | 124 | メディアの種類が間違っている場合に表示されます。 |
キャンセルされました | 125 | 操作をキャンセルした場合に表示されます。 |
エノキー | 126 | 必要なキーが利用できない場合に表示されます。 |
EKEY期限切れ | 127 | キーの有効期限が切れている場合に表示されます。 |
EKEY取り消し | 128 | キーが取り消されている場合に表示されます。 |
Eキーが拒否されました | 129 | キーがサービスによって拒否された場合に表示されます。 |
オーナーデッド | 130 | 所有者が死亡した場合に表示されます。 |
回収不可能 | 131 | 回復不可能な状態の場合に表示されます。 |
エルフキル | 132 | RF-kill により操作が不可能な場合に表示されます。 |
イーポイズン | 133 | メモリページにハードウェアエラーがある場合に表示されます。 |