有人知道基于 BSD 的系统中 fcntl 函数的 F_NOTIFY 标志的等效项吗?此标志允许您接收有关文件事件的通知(例如文件打开、文件关闭、写入文件的字节、从文件读取的字节)。该标志存在于 Linux 中,但不存在于 MACOSX(基于 BSD 的系统)中。
来自 linux man 的引用:
文件和目录更改通知 (dnotify)
int fcntl(int fd, int cmd, ... /* arg */ );
F_NOTIFY (long) (Linux 2.4 以上) 当 fd 引用的目录或其包含的任何文件发生更改时提供通知。
实际上,任何允许我接收文件事件的 API 对我来说都足够了。
有人知道 F_NOTIFY 是否存在任何替代品吗?这时候我只有一个想法:使用kqueue()、kevent()函数。