后台文件索引器(Win,* Nix,跨平台)

时间:2015-01-30 00:38:15

标签: c windows unix indexing filesystems

我正在构建一个等效的OS X mds守护程序,或mdworker,它是spotlight使用http://en.wikipedia.org/wiki/Spotlight_%28software%29索引文件的后端(目录是文件! )在创建,删除和修改时。

如此处所示,OS X内核会通知“spotlight”它所响应的任何更改 - https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/MetadataIntro/Concepts/HowDoesItWork.html#//apple_ref/doc/uid/TP40001847-CJBEJBHH

我正在为Windows,* Nix / Linux和OS X这样做。 是否有任何跨平台库提供钩子或这样做? 如果没有,您是否知道允许我这样做的Win32 API,Nix API,OS X API的任何资源?

我完全满足于只读访问权限并被拒绝访问系统敏感文件,但我能获得的越多越好!

这是一个桌面搜索引擎的列表,一些开源 - 也许如果你们中的任何人已经钻研了代码,你知道他们是如何管理它的吗?例如,也许Unity Dash会这样做? http://en.wikipedia.org/wiki/List_of_search_engines#Desktop_search_engines

我对此事的调查仍在继续:https://github.com/Centril/open-spotlight/wiki/Technical-in-depth#watcher

1 个答案:

答案 0 :(得分:1)

我自己的研究提出了以下资源:

http://en.wikipedia.org/wiki/File_Alteration_Monitor, NFS aware == great for network
http://www.linuxdevcenter.com/pub/a/linux/2004/12/16/fam.html
http://en.wikipedia.org/wiki/Inotify (Linux only)
http://en.wikipedia.org/wiki/Gamin (Linux => Inotify, FreeBSD => kqueue)
http://en.wikipedia.org/wiki/FSEvents (OS X > 10.7 (Lion), target >= Yosemite 10.10)
http://en.wikipedia.org/wiki/Libevent (Platform Independent!)
Even better: https://github.com/facebook/hhvm/issues/2047
Winner: https://github.com/libuv/libuv, used by rust via libgreen.

Libuv似乎是一个很棒的图书馆。