MACOSX (BSD) 相当于 fcntl() 函数的 F_NOTIFY 标志
有谁知道基于 BSD 的系统中 fcntl 函数的 F_NOTIFY 标志的等效项吗? 该标志允许您接收有关文件事件的通知 (例如文件打开、文件关闭、写入文件的字节、从文件读取的字节)。 该标志存在于 Linux 中,但不存在于 MACOSX(基于 BSD 的系统)中。
引用linux man:
文件和目录更改通知 (通知)
int fcntl(int fd, int cmd, ... /* arg */ );
F_NOTIFY(长) (Linux 2.4 及以上)目录时提供通知 由 fd 或任何文件引用 它包含的内容已更改。
实际上,任何允许我接收文件事件的 API 对我来说就足够了。
有人知道 F_NOTIFY 是否存在替代品吗? 此时我只有一个想法:使用kqueue()、kevent()函数。
Does anybody know equivalent for F_NOTIFY flag for fcntl function in a BSD based system?
This flag allows you to receive notifications about file events
(for example file opened, file closed, bytes written to file, bytes read from file).
This flag exists in Linux, but does not exist in MACOSX (BSD based system).
Quote from linux man:
File and directory change notification
(dnotify)int fcntl(int fd, int cmd, ... /* arg
*/ );F_NOTIFY (long)
(Linux 2.4 onwards) Provide notification when the directory
referred to by fd or any of the files
that it contains is changed.
Actually any API which allows me to receive file events will be enough for me.
Does anybody know if any substitute exists for F_NOTIFY?
At this time I have only one idea: using the kqueue(), kevent() functions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有完全等同的;
kqueue()/
kevent()
与
EVFILT_VNODE
事件过滤器是 OS X 上的替代品。请注意,即使在 Linux 中,F_NOTIFY 也已被 inotify。
There is no exact equivalent;
kqueue()
/kevent()
with anEVFILT_VNODE
event filter is the substitute on OS X.Note that even in Linux, F_NOTIFY has been superceded by inotify.