MACOSX (BSD) 相当于 fcntl() 函数的 F_NOTIFY 标志

发布于 2024-10-20 02:01:53 字数 463 浏览 6 评论 0原文

有谁知道基于 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

变身佩奇 2024-10-27 02:01:53

没有完全等同的; kqueue()/kevent()EVFILT_VNODE 事件过滤器是 OS X 上的替代品。

请注意,即使在 Linux 中,F_NOTIFY 也已被 inotify

There is no exact equivalent; kqueue()/kevent() with an EVFILT_VNODE event filter is the substitute on OS X.

Note that even in Linux, F_NOTIFY has been superceded by inotify.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文