所以我正在尝试编写一个使用inotify的C程序。我之前使用过pyinotify,所以我理解它是如何工作的。但是,我正在关注一些指南,它告诉我要包含<linux/inotify.h>
。问题是这个头只有宏定义,而不是函数原型。看起来函数是<sys/inotify.h>
中的原型。
我的问题是linux/inotify.h
和sys/inotify.h
之间有什么区别?为什么两者都有?
答案 0 :(得分:8)
sys/inotify.h
是GNU C library的一部分。它公开了程序将使用的结构和函数,以便接收文件系统更改通知。它可以被视为通知系统的公共API。
linux/inotify.h
是Linux内核的一部分。它定义了用于实现通知系统本身的内核结构和常量。您不应该包含该文件,除非您正在编写内核模块,因为它是特定于Linux的,因此不可移植。