inotify C头

Fal*_*rri 7 c linux header inotify

所以我正在尝试编写一个使用inotify的C程序.我之前使用过pyinotify,所以我理解它是如何工作的.但是,我正在遵循一些指南,它告诉我要包括<linux/inotify.h>.问题是这个头只有宏定义,而不是函数原型.看起来函数是原型的<sys/inotify.h>.

我的问题是linux/inotify.h和之间的区别是什么sys/inotify.h?为什么两者兼而有之?

Fré*_*idi 8

sys/inotify.hGNU C库的一部分.它公开了程序将使用的结构和函数,以便接收文件系统更改通知.它可以被视为通知系统的公共API.

linux/inotify.h是Linux内核的一部分.它定义了用于实现通知系统本身的内核结构和常量.除非您编写类似内核模块的内容,否则不应该包含该文件,因为它是特定于Linux的,因此不可移植.

  • 当然,但并非所有的glibc都属于标准.这是其中一个. (4认同)
  • @FrédéricHamidi:Glibc包含**吨**的GNU和POSIX特定的东西 - 即标题为"sys /"文件夹中的*任何*,"unistd.h",套接字的东西......等标准库只有`assert.h`,`ctype.h`,`errno.h`,`float.h`,`iso646.h`,`limits.h`,`locale.h`,`math.h`, `setjmp.h`,`signal.h`,`stdarg.h`,`stddef.h`,`stdio.h`,`stdlib.h`,`string.h`和`time.h`.(在C99中添加了一些东西,但我没有那个列表ATM ..) (3认同)
  • @Frédéric:GNU C Library!=标准库.标准库==`ISO/IEC 9899:1990`或`ISO/IEC 9899:1999`. (2认同)
  • 为了回应GNU!= POSIX,BSD没有`inotify`,因为功能在`kqueue`中.为了便于携带,请尝试http://mark.heily.com/pnotify/ (2认同)