Вопрос
Поэтому я пытаюсь написать программу C, которая использует Inotify. Я использовал Pyinotify раньше, поэтому я понимаю, как это работает. Тем не менее, я следую на каком-то гид, и это говорит мне, чтобы включить <linux/inotify.h>
. Отказ Проблема в том, что этот заголовок имеет только макроспределения, а не прототипы Funciton. Похоже, что функции простотируются в <sys/inotify.h>
.
Мой вопрос в том, какая разница между linux/inotify.h
а также sys/inotify.h
? Почему там обоим?
Решение
sys/inotify.h
является частью GNU C Библиотека. Отказ Он предоставляет структуры и функции, которые ваша программа будет использовать для получения уведомлений об изменении файловой системы. Его можно рассматривать как публичное API системы уведомлений.
linux/inotify.h
является частью ядра Linux. Он определяет структуры и константы ядра, используемые для реализации самой системы уведомлений. Вы не должны включать этот файл, если вы не пишете что-то вроде модуля ядра, потому что это специфичный Linux и, таким образом, не портативный.