このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
errno がリセットされていません
errno
を設定する関数を呼び出す前に errno
をリセットしていない
説明
この欠陥は、エラー状態を示すように errno
を設定する関数を呼び出す前に errno
をリセットしなかった場合に発生します。ただし、関数呼び出し後には、errno
でエラー状態をチェックしています。
リスク
errno
を設定する関数は、errno
を、エラー状態を示す非ゼロの値に設定します。
errno
を設定する関数を呼び出す前に errno
をゼロに設定していなかった場合、errno
を設定する関数を以前に呼び出したときに設定された非ゼロの値が、errno
に残っている可能性があります。この場合、errno
を使用してエラーを確認すると、最新の呼び出しで発生したエラーであると誤って判断する可能性があります。
errno
はプログラム起動時に 0 に設定されますが、エラーの発生後に自動的にリセットされることはありません。必要に応じて、errno
を明示的に 0 に設定しなければなりません。
修正方法
エラー状態を示すために errno
を設定する関数を呼び出す前に、errno
を明示的にゼロにリセットします。
例
結果情報
グループ: プログラミング |
言語: C | C++ |
既定値: 手書きコードはオン、生成コードはオフ |
コマンド ライン構文: MISSING_ERRNO_RESET |
影響度: High |