inotify les en-têtes C

J’essaie donc d’écrire un programme C qui utilise inotify. J’ai utilisé pyinotify avant donc je comprends comment ça marche. Cependant, je suis un guide et il me dit d’inclure . Le problème est que cet en-tête n’a que des définitions de macros, pas les prototypes de fonctions. Il semble que les fonctions soient prototypées dans .

Ma question est la différence entre linux/inotify.h et sys/inotify.h ? Pourquoi y a-t-il les deux?

sys/inotify.h fait partie de la bibliothèque GNU C. Il expose les structures et les fonctions que votre programme utilisera pour recevoir les notifications de modification du système de fichiers. Il peut être considéré comme l’API publique du système de notification.

linux/inotify.h fait partie du kernel Linux. Il définit les structures du kernel et les constantes utilisées pour implémenter le système de notification lui-même. Vous ne devriez pas inclure ce fichier sauf si vous écrivez quelque chose comme un module du kernel, car il est spécifique à Linux et donc non portable.