因此,我试图编写一个使用inotify的C程序。我以前使用过pyinotify,所以我了解它是如何工作的。但是,我正在遵循一些指南,它告诉我包括<linux/inotify.h>。问题在于此 header 仅具有宏定义,而没有函子原型(prototype)。看起来这些函数是在<sys/inotify.h>中原型(prototype)化的。

我的问题是linux/inotify.hsys/inotify.h有什么区别?为什么两者都有?

最佳答案

sys/inotify.hGNU C library的一部分。它公开了程序将用于接收文件系统更改通知的结构和功能。可以将其视为通知系统的公共(public)API。
linux/inotify.h是Linux内核的一部分。它定义了用于实现通知系统本身的内核结构和常量。除非要编写类似于内核模块的内容,否则不应该包含该文件,因为它是特定于Linux的,因此不可移植。

关于c - 初始化C头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4420647/

10-11 20:54