GNU/Linux >> Tutoriels Linux >  >> Linux

Macro IS_ERR() sous Linux

Attention aux écueils :

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

Cela couvre -1 à -4095, qui représente le code d'erreur, pas un nombre inférieur à 4096, ni NULL (0). Chaque valeur de 0 à 4294963201 (0xfffff001) est considérée comme aucune erreur. Ne l'utilisez pas pour couvrir la vérification NULL.


Si vous voulez savoir à quoi la macro se développe, compilez simplement votre fichier en utilisant le -E option de gcc, qui ne fera que le pré-traitement. Il inclura tous les en-têtes et développera toutes les macros.

La macro n'est pas "exécutée" en soi, c'est juste un type de "recherche et remplacement".


Teste si le pointeur fourni doit être considéré comme une valeur d'erreur .

Il ne vérifie pas si le pointeur est valide.

Dans votre code IS_ERR est utilisé pour vérifier si class_create création réussie de ebbcharClass . Si une erreur se produit, désenregistrez le pilote char et signalez l'erreur.

Vous pouvez trouver des MACRO et des fonctions en ligne dans err.h


Linux
  1. cp :répertoire omis - erreur lors de la copie d'un répertoire sous Linux

  2. Erreur Android Studio 13 =autorisation refusée sous Linux

  3. Erreur sur Vagrant Up sous Linux

  4. Dans le noyau Linux 2.6.26, j'ai trouvé #define atomic_read(v) ((v)->counter + 0), pourquoi +0 ?

  5. Erreur lors de l'initialisation de la carte SD sous Linux

[Résolu] « erreur :rpmdbNextIterator :saut » dans Fedora Linux

Erreur critique de Virtualbox Guru Meditation sous Linux

Dépannage de l'erreur "Certificat TLS inacceptable" sous Linux

Dépannage de l'erreur "Bash :Commande introuvable" sous Linux

eth0 NIC Link is Down erreur sur Linux

Erreur lors de l'installation d'Arch Linux