31得票4回答
Mac OS X中的文件级别文件系统变更通知

我希望我的代码能在给定目录(直接或间接)下的任何文件被修改时得到通知。所谓“修改”,是指我希望每当文件内容被更改、文件被重命名或删除,或添加新文件时,都能通知我的代码。对于我的应用程序,可能会有成千上万个文件。 我查看了FSEvents,但其技术概述中部分内容如下: 重要的一点是,通知的粒...

18得票1回答
选择(select)、epoll、kqueue和evport之间的根本区别是什么?它们在IT技术中的作用是什么?

最近我在阅读Redis。 Redis基于I/O多路复用实现了一个简单的事件驱动库。 Redis表示它会选择系统支持的最佳多路复用方法,并给出了以下代码:/* Include the best multiplexing layer supported by this system. * The...

13得票2回答
OS X不支持epoll函数吗?

我正在学习使用epoll函数。但是我的操作系统OS X Mountain Lion没有头文件sys/epoll.h。我想在OS X上使用epoll函数。我该怎么做?

12得票2回答
监视目录以检测文件变化

我想监控一个目录(包含数千个文件,大约有5个级别的子目录),以便在文件更改时进行跟踪。我知道可以使用FSEvents API监视目录以了解该目录中文件何时更改,但我似乎无法确定哪些文件发生了更改。这个参考建议我构建一个二叉树,并在每次触发事件时遍历树,这是确定哪些文件已更改的最佳方法吗?如果不...

11得票1回答
如何正确地等待一个事件/进程完成而不是作为父进程?

我正在使用GO来检查一个进程(非父进程)是否已经终止,基本上类似于FreeBSD中的pwait命令,但是是用go语言编写的。 目前,我正在尝试使用for循环和kill -0,但是我注意到这种方法的CPU使用率非常高99%,以下是代码: package main import ( ...

11得票1回答
重新审视“如何同时使用aio和epoll”

在如何在单个事件循环中同时使用AIO和epoll?的讨论后。 实际上,Linux中有2个“aio”API。 第一个是POSIX aio(aio_*函数族),包含在glibc和我认为由RedHat开发的libaio中,即io_*函数族。 第一个允许通过aio_sigevent aiocb成员...

11得票2回答
使用vim写文件在OS X系统上不会触发文件更改事件。

我正在使用watchdog来监控OS X上.less文件的更改事件。如果我使用TextMate或Sublime Text更改.less文件的内容,则会捕获修改事件。然而,如果我使用vim编辑内容,将不会触发任何文件修改事件(但是会捕获使用vim创建的文件的文件创建事件)。我在FSEvents和...

9得票2回答
使用kqueue()监控目录中的变化的最佳方法是什么?

好的:我正在一个iPhone OS应用程序中实现文件共享,当然这意味着需要进行文件系统监控。太好了! 基本上,当用户将文件操作到我的应用程序部分中的iTunes时,操作系统会从一个我可以访问的目录复制和/或删除文件。因此,我需要通过一种有效的机制(如kqueue())监视该目录以进行更改。 ...

8得票2回答
Watchdog(OSX)不会在远程网络更改时通知

我正在使用Watchdog来监控一个网络目录,非递归地查找特定模式的文件是否随时间创建。我的问题是,当我在本地测试时它工作得很好,但如果我从远程计算机更改受监视的目录,则事件不会被触发。 以下是我的具体配置细节: - OSX - 在NFS挂载上监视单个目录,非递归地 - python 2....

7得票1回答
使用 kqueue 来响应多个事件类型

当使用kqueue注册事件时,会提供与该事件类型相关的ID;例如,文件描述符用于标识要监视的文件。 int kq; struct kevent ke; kq = kqueue(); fd = open(argv[1], O_RDONLY); EV_SET(&ke, fd, EVFI...