GNU/Linux >> Linux の 問題 >  >> Linux

Linux の IS_ERR() マクロ

落とし穴に注意してください:

#define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
#define MAX_ERRNO       4095

これはエラー コードを表す -1 から -4095 をカバーし、4096 未満の数値や NULL (0) ではありません。0 から 4294963201 (0xfffff001) までのすべての値はエラーではないと見なされます。>

マクロの展開先を知りたい場合は、 -E を使用してファイルをコンパイルしてください 前処理のみを行うgccのオプション。すべてのヘッダーが含まれ、すべてのマクロが展開されます。

マクロ自体は「実行」されるのではなく、単に「検索と置換」タイプのものです。


指定されたポインタがエラー値と見なされるかどうかをテストします .

ポインターが有効かどうかはチェックしません。

コードで IS_ERR を使用して class_create かどうかを確認します ebbcharClass の作成に成功しました .エラーが発生した場合は、char ドライバーの登録を解除し、エラーを通知します。

err.h に MACRO とインライン関数があります。


Linux
  1. Linux 用 R パッケージのインストール エラー

  2. Arch Linux のインストール エラー

  3. Samba 4.9.0 ./configure lmdb エラー

  1. Linuxでのcron認証失敗エラーを修正するにはどうすればよいですか?

  2. Linux – Gnomeターミナルが起動しない?

  3. 修正::LinuxSSHエラー接続が拒否されました

  1. Kali Linux での OpenVAS の構成と調整

  2. cp:ディレクトリの省略 – Linux でディレクトリをコピー中にエラーが発生しました

  3. Linux c++ エラー:'dlopen' への未定義の参照