GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser <linux/types.h> dans les programmes utilisateur, ou <stdint.h> dans le code du module de pilote... est-ce important ?

  1. Est-ce une mauvaise idée d'utiliser les inclusions linux/*.h dans le code de l'espace utilisateur ?

Oui, généralement. La situation typique est que vous devez utiliser les en-têtes de la bibliothèque C (dans ce cas, stdint.h et amis), et s'interface avec la bibliothèque C via ces types d'espace utilisateur, et laisse la bibliothèque gérer la communication avec le noyau via les types de noyau.

Vous n'êtes cependant pas dans une situation typique. Dans votre cas, vous écrivez la bibliothèque de pilotes . Vous devriez donc présenter une interface à l'espace utilisateur en utilisant stdint.h , mais en utilisant le linux/*.h en-têtes lorsque vous vous connectez à votre pilote de noyau.

La réponse est donc non, dans votre cas.

  1. Est-ce une mauvaise idée d'utiliser stdint.h dans le code de l'espace noyau ?

Certainement oui.

Voir aussi :http://lwn.net/Articles/113349/


Linux
  1. Comment créer un utilisateur Linux avec Ansible

  2. Peux-tu le faire? Compiler des programmes C sous Linux à l'aide de la commande Make

  3. Que signifie __init dans le code du noyau Linux ?

  4. Comment coder un module du noyau Linux ?

  5. Bonne façon d'obtenir des groupes d'un utilisateur sous Linux en utilisant C

Commande ID sous Linux

Comment créer des utilisateurs à l'aide de la commande Useradd sous Linux

Qu'est-ce que POSIX ? Pourquoi est-ce important pour les utilisateurs Linux/UNIX ?

Comment formater des programmes Shell à l'aide de Shfmt sous Linux

Comment savoir si un utilisateur utilise une authentification SSH basée sur un mot de passe ou une clé sous Linux

modifications des paramètres du module du noyau (à l'aide de /sys/module)