6
所以我试图编写一个使用inotify的C程序。我之前使用pyinotify,所以我明白它是如何工作的。但是,我遵循一些指南,它告诉我包括<linux/inotify.h>
。问题是这个头只有宏定义,而不是功能原型。它看起来像在<sys/inotify.h>
原型的功能。inotify C头文件
我的问题是linux/inotify.h
和sys/inotify.h
之间的区别是什么?为什么都有?
所以我试图编写一个使用inotify的C程序。我之前使用pyinotify,所以我明白它是如何工作的。但是,我遵循一些指南,它告诉我包括<linux/inotify.h>
。问题是这个头只有宏定义,而不是功能原型。它看起来像在<sys/inotify.h>
原型的功能。inotify C头文件
我的问题是linux/inotify.h
和sys/inotify.h
之间的区别是什么?为什么都有?
sys/inotify.h
是GNU C library的一部分。它公开了程序将用来接收文件系统更改通知的结构和函数。它可以被视为通知系统的公共API。
linux/inotify.h
是Linux内核的一部分。它定义了用于实现通知系统本身的内核结构和常量。你不应该包含那个文件,除非你写了类似于内核模块的东西,因为它是Linux专用的,因此不是可移植的。
sys/inotify.h不是标准库的一部分! (但是,它的一部分库通常在Linux机器上可用) – 2010-12-12 08:07:35
@Billy,我的'sys/inotify.h'表示'该文件是GNU C库的一部分',位于文件的顶部,并且我的软件包管理器说它是由'glibc'安装的。你的意见是什么? – 2010-12-12 08:17:08
@Frédéric:GNU C Library!=标准库。标准库==“ISO/IEC 9899:1990”或“ISO/IEC 9899:1999”。 – 2010-12-12 08:18:47