调用inotify_init()后返回-1,通过strerror(error)提示为“Function not implemented”,这个错误的排除方法如下:
inotify是从内核2.6.13开始引入的,而glibc为inotify机制提供用户态API是从2.4开始引入的,因此先确定内核以及glibc的版本是否满足上述条件。
内核的版本确定方法:uname -r
查看glibc的版本信息:ls -l /lib/libc.so.6
如果上述版本信息无误,那么接着查看当前内核是否打开了inotify的相关选项:
1.进入家目录:cd
2.将config.gz文件拷贝到家目录:cp /proc/config.gz ./
3.解压这个文件到家目录:gzip -d config.gz
4.打开刚刚解压的文件(默认情况下文件名为config),查找CONFIG_INOTIFY关键字。如果CONFIG_INOTIFY和CONFIG_INOTIFY_USR没有打开,也就是说其值不是Y,那么就不能使用inotify功能。