GNU/Linux >> Tutoriales Linux >  >> Linux

IS_ERR() macro en Linux

Tenga cuidado con las trampas:

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

Esto cubre de -1 a -4095, que representa un código de error, no un número por debajo de 4096, ni NULL (0). Cada valor de 0 a 4294963201 (0xfffff001) se considera que no es un error. No lo use para cubrir la comprobación de NULL.


Si desea saber a qué se expande la macro, simplemente compile su archivo usando el -E opción de gcc, que solo hará preprocesamiento. Incluirá todos los encabezados y expandirá todas las macros.

La macro no "se ejecuta" per se, es solo un tipo de cosa de "buscar y reemplazar".


Comprueba si el puntero proporcionado debe considerarse un valor de error .

No comprueba si el puntero es válido.

En su código, IS_ERR se usa para verificar si class_create logró crear ebbcharClass . Si se produce un error, anule el registro del controlador char y señale el error.

Puede encontrar MACRO y funciones en línea en err.h


Linux
  1. Linux:¿el terminal de Gnome no se inicia?

  2. Android Studio error 13 =permiso denegado en Linux

  3. Error en Vagrant Up en Linux

  4. En el kernel de Linux 2.6.26, encontré #define atomic_read(v) ((v)->counter + 0), ¿por qué +0?

  5. Error al instalar Arch Linux

[Resuelto] “error:rpmdbNextIterator:saltando” en Fedora Linux

Error crítico de meditación de Virtualbox Guru en Linux

Solución de problemas del error "Certificado TLS inaceptable" en Linux

Solución de problemas del error "Bash:Comando no encontrado" en Linux

El enlace NIC de eth0 está inactivo en Linux

Error al instalar el paquete R para Linux