找传世
找传世
找传世
找传世

在Linux中构建递归文件系统观察程序

时间:2019-05-26 19:22 来源:http://www.zhaowoool.games

根据我之前关于纠正文件路径情况的更新,我现在可以在Leadwerks中加载我们所有的地图。这个本机在Linux上运行的工具的强大能开始显示,如果我自己这样说的话:



下一步是实现文件系统观察程序以检测文件更改。Leadwerks会自动监视当前项目目录,并在文件发生更改时重新加载资源。这使您可以在图像编辑器(如GIMP)中保持图像打开,任何时候保存您的更改都会反映在Leadwerks内部。这对于艺术家来说是一个很棒的工作流程,而且我想用这个项目带给Linux的那种能。

Linux有一个内置的文件系统观察器类叫做“inotify”。有趣的是,这个类在2005年被添加到Linux,同年iPod发布了,但似乎没有连接。 “inotify”中的“i”代表“inode”。 Dennis Ritchie解释说:

事实上,我也不知道。这只是我们开始使用的一个术语。 “索引”是我最好的猜测,因为稍微不寻常的文件系统结构将文件的访问信息存储为磁盘上的平面阵列,所有分层目录信息都与此无关。因此,i-number是该数组中的索引,i-node是数组的选定元素。 (“i-”符号用于第1版手册;其连字符逐渐删除。)

使用程序C接口实现inotify系统是非常简单的。一个让我失望的东西是?inotify_event结构的奇怪布局。它实际上有一个内置于结构中的char指针,所以从技术上来说这个结构没有确定的长度。我不相信我曾经遇到过这个设计,但我也经常处理std :: string类。

inotify的一个缺点是它不是递归的。在搜索有关设计的信息时,我发现了这篇文章?罗伯特·洛夫(Robert Love)是其中一个写作的人之一(另一个是约翰麦卡丘禅)。我不同意他的理由,因为我没有提出递归;仅仅因为表现并不像他想的那样最佳并不意味着最终用户的品味和喜好会发生变化。我无法想象一个场景,你不希望系统递归地工作,或者至少有在任何情况下,实施递归监视系统都相当容易。整个文件监视系统从零到完成只需要大约半天。所以我们可以将其标记为我高估实现的时间和复杂的特征之一。

文件创建,删除和修改事件现在可靠地触发,所以我将这个代插入编辑器并开始测试它。因为编辑器已经在其他Windows和OSX上可靠地工作,我预计不会有任何问题我没有确定的发布日期,但是你可以推测,我们即将完成?Leadwerks for Linux。

相关文章: