GNU/Linux >> Linux Esercitazione >  >> Linux

Usare <linux/types.h> nei programmi utente, o <stdint.h> nel codice del modulo driver... ha importanza?

  1. È una cattiva idea usare linux/*.h include nel codice dello spazio utente?

Sì, di solito. La situazione tipica è che dovresti usare le intestazioni della libreria C (in questo caso, stdint.h e amici), e si interfaccia con la libreria C attraverso quei tipi di spazio utente, e lascia che la libreria gestisca la conversazione con il kernel attraverso i tipi di kernel.

Non sei in una situazione tipica però. Nel tuo caso, stai scrivendo la libreria dei driver . Quindi dovresti presentare un'interfaccia allo spazio utente usando stdint.h , ma utilizzando linux/*.h headers quando ti interfaccia al tuo driver del kernel.

Quindi la risposta è no, nel tuo caso.

  1. È una cattiva idea usare stdint.h nel codice kernel-space?

Assolutamente sì.

Vedi anche:http://lwn.net/Articles/113349/


Linux
  1. Come eseguire il debug di programmi C in Linux usando gdb

  2. Come rimuovere l'utente in Linux utilizzando la riga di comando

  3. Come creare un utente Linux usando Ansible

  4. Come creare un utente in Linux usando Python

  5. Cosa significa dire che il kernel Linux è preventivo?

Comando ID in Linux

Come creare utenti utilizzando il comando Useradd in Linux

Cos'è POSIX? Perché è importante per gli utenti Linux/UNIX?

Come formattare i programmi Shell usando Shfmt in Linux

Come scoprire se un utente utilizza l'autenticazione SSH basata su password o basata su chiave in Linux

Modo corretto per ottenere gruppi di un utente in Linux usando C