MACOSX(BSD)等效于fcntl()函数的F_NOTIFY标志

Vla*_*lad 3 linux macos bsd fcntl

在基于BSD的系统中,有没有人知道fcntl函数的F_NOTIFY标志的等价物?此标志允许您接收有关文件事件的通知(例如,文件已打开,文件已关闭,写入文件的字节数,从文件读取的字节数).此标志存在于Linux中,但在MACOSX(基于BSD的系统)中不存在.

来自linux的人引用:

文件和目录更改通知(dnotify)

int fcntl(int fd,int cmd,.../*arg*/);

F_NOTIFY(长整数)(Linux 2.4及更高版本)当fd引用的目录或其包含的任何文件发生更改时,提供通知.

实际上任何允许我接收文件事件的API对我来说都足够了.

有人知道F_NOTIFY是否有替代品?这时我只有一个想法:使用kqueue(),kevent()函数.

mar*_*k4o 5

没有确切的等价物; kqueue()/kevent()使用EVFILT_VNODE事件过滤器是OS X的替代品.

请注意,即使在Linux中,F_NOTIFY已被inotify取代.