GNU/Linux >> Linux Esercitazione >  >> Linux

macro IS_ERR() in Linux

Fai attenzione alla trappola:

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

Questo copre da -1 a -4095, che rappresenta il codice di errore, non un numero inferiore a 4096, né NULL (0). Ogni valore da 0 a 4294963201 (0xfffff001) non è considerato un errore. Non utilizzarlo per coprire il controllo NULL.


Se vuoi sapere a cosa si espande la macro, compila semplicemente il tuo file usando -E opzione di gcc, che eseguirà solo la pre-elaborazione. Includerà tutte le intestazioni ed espanderà tutte le macro.

La macro non viene "eseguita" di per sé, è solo una cosa del tipo "cerca e sostituisci".


Verifica se il puntatore fornito deve essere considerato un valore di errore .

Non controlla se il puntatore è valido.

Nel tuo codice IS_ERR viene utilizzato per verificare se class_create riuscito a creare ebbcharClass . Se si verifica un errore, annullare la registrazione del driver char e segnalare l'errore.

Puoi trovare le MACRO e le funzioni incorporate in err.h


Linux
  1. Come correggere l'errore di errore di autenticazione Cron in Linux?

  2. Configurazione e ottimizzazione di OpenVAS in Kali Linux

  3. Errore Linux c++:riferimento non definito a 'dlopen'

  4. Errore durante l'installazione del pacchetto R per Linux

  5. Errore durante l'installazione di Arch Linux

[Risolto] "errore:rpmdbNextIterator:saltando" In Fedora Linux

Errore critico di meditazione Virtualbox Guru in Linux

Risoluzione dei problemi "Certificato TLS inaccettabile" Errore in Linux

Risoluzione dei problemi di errore "Bash:comando non trovato" in Linux

eth0 NIC Link è un errore inattivo su Linux

Errore durante l'inizializzazione della scheda SD su Linux