Donc j'essaye d'écrire un programme C qui utilise inotify. J'ai utilisé pyinotify auparavant, donc je comprends comment cela fonctionne. Cependant, je suis un guide et il me dit d'inclure <linux/inotify.h>
. Le problème est que cet en-tête n'a que des définitions de macro, pas les prototypes de funciton. Il semble que les fonctions sont prototypées en <sys/inotify.h>
. Ma question est quelle est la différence entre linux/inotify.h
et sys/inotify.h
? Pourquoi y a-t-il les deux?inotify En-têtes C
6
A
Répondre
7
sys/inotify.h
fait partie de la GNU C library. Il expose les structures et les fonctions que votre programme utilisera pour recevoir les notifications de changement de système de fichiers. Il peut être considéré comme l'API publique du système de notification.
linux/inotify.h
fait partie du noyau Linux. Il définit les structures du noyau et les constantes utilisées pour implémenter le système de notification lui-même. Vous ne devez pas inclure ce fichier à moins que vous n'écriviez quelque chose comme un module de noyau, car il est spécifique à Linux et n'est donc pas portable.
sys/inotify.h ne fait pas partie de la bibliothèque standard! (C'est, cependant, une partie des bibliothèques généralement disponibles sur une boîte Linux) –
@Billy, my 'sys/inotify.h' dit' Ce fichier fait partie de la bibliothèque GNU C' en haut du fichier, et mon gestionnaire de paquets dit qu'il est installé par 'glibc'. Que dit le tien? –
@ Frédéric: Bibliothèque C GNU! = Bibliothèque standard. Bibliothèque standard == 'ISO/IEC 9899: 1990' ou' ISO/IEC 9899: 1999'. –