首页 / 知识
如何在 C/C 中收到文件/目录更改的通知,最好使用 POSIX
2023-04-15 06:18:00

How to be notified of file/directory change in C/C++, ideally using POSIX主题说明了一切——通常简单且跨平台的方式是智能地进行投票。但是每个操作系统都有一些无需轮询的方式来通知。是否有可能以合理的跨平台方式进行? (我只关心 Windows 和 Linux,但我使用的是 mac,所以我认为 posix 可能会有所帮助?) Linux 用户可以使用 inotify
Windows 爱好者的一些好东西:
Qt 库有一个 QFileSystemWatcher 类,它在文件更改时提供跨平台通知。即使您不使用 Qt,因为源代码可用,您也可以将其作为您自己实现的示例来查看。 Qt 对 Windows、Linux 和 Mac 有单独的实现。 Leopard 有文件系统事件 API。 我之前实际上已经构建了这个系统,用于商业 C 代码库——只要你不需要在阳光下所有奇怪的东西,Windows 和 POSIX 系统有很多重叠之处,你可以抽象出来。 POSIX:使用 inotify——它是为这项工作而构建的完整系统 您可以在"通知线程"中检测到的转发事件的常见内容是: inotify 尤其为您提供了疯狂的细粒度控制,Windows 则更少。使用 inotify,如果您真的想要,您可以几乎实时地监控文件系统正在执行的所有操作。我知道在没有轮询的情况下,#3 都是可能的,但请注意,让它在任一系统上正常工作都非常棘手。 我不认为 POSIX 本身有这方面的功能。我见过的最接近跨平台的是 FAM,它似乎适用于 Linux、BSD 和 Irix,但将它移植到 Windows 和 MacOS 并不是那么容易。 libevent 或 libev 似乎是你想要的,虽然我没有使用它们。 我相信 OS X 现在有适当的钩子/回调,因为 Spotlight 索引需要它们。 在 linux 上,您会遇到额外的麻烦,即通常使用多个文件系统。如果您只需要有限数量的文件/目录的功能,我会尝试定期主动寻找修改。 |
最新内容
相关内容
改文件linux命令行?
改文件linux命令行?,地址,系统,工作,信息,数字,文件,命令,设备,密码,权限,linux常用命令有哪些1、linux系统常用操作命令linux系统常用操作命拷贝文件夹linux命令?
拷贝文件夹linux命令?,系统,地址,服务,信息,密码,情况,单位,项目,命令,文件,linux系统如何挂载硬盘并拷贝到某个目录下?copy命令 该命令的功打包文件命令linux?
打包文件命令linux?,系统,时间,工具,名称,命令,文件,目录,格式,表示,详细信息,linux打包?打开终端并进入要打包的目录。使用cd命令切换到要打linux中文件编辑命令?
linux中文件编辑命令?,系统,工作,工具,信息,地址,发行,命令,第一,检测,基础,linux有哪些的必学文件处理命令?linux入门式必学的文件处理命令,主linux文件格式的命令?
linux文件格式的命令?,设备,命令,系统,文件,标准,代码,情况,电脑,平台,数据,linux更改文件类型命令1、s 套接字文件。b 块设备文件,二进制文件linux命令行编译文件?
linux命令行编译文件?,代码,系统,项目,工具,网上,手机,电脑,地址,官网,文件,Linux下,用什么命令编译m文件为可执行文件所以使用gcc test -o telinux下文件写入命令?
linux下文件写入命令?,系统,信息,文件,名字,电脑,软件,目录,命令,内容,指令,linux虚拟机磁盘格式化和挂载后如何在挂载的目录里写入文件1、若linux命令备份文件夹?
linux命令备份文件夹?,设备,系统,文件,命令,备份,情况,做好,名字,灵活,数据,linux怎么设置原目录和备份目录dump命令 Linux dump命令用于备份linux命令deb文件?
linux命令deb文件?,软件,位置,第一,系统,中心,工具,信息,发行,网站,管理系统,linux中deb如何安装?第一我们先下载一个deb格式的软件包,记住它的linux文件夹删除命令?
linux文件夹删除命令?,系统,命令,不了,档案,名称,通用,文件夹,文件,目录,指令,linux的文件和目录的删除命令有哪些?1、Mkdir 123桌面/演示删除linux文件类基本命令?
linux文件类基本命令?,系统,设备,工具,工作,基础,命令,文件,发行,管理,网络,Linux文件系统操作命令(1)根据文件名查找例如,我们想要查找一个文linux建个文件夹命令?
linux建个文件夹命令?,系统,名字,命令,文件,文件夹,环境,不了,名称,数据,密码,删除文件夹中所有文件的linux命令(创建和删除文件和文件夹的lin