问题标签 [fsevents]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
291 浏览

c++ - Mac OS X 中 fsevents 观察程序中的内存泄漏

我需要 Mac OS X 中的文件系统通知,我正在从 /dev/fsevents 读取。在 Mac OS X 中捕获 fsevents 的示例代码:http: //www.codecollector.net/view/1066/raw_fsevents。在这段代码中,您可以看到从 /dev/fsevents 读取的缓冲区一经读取就被处理。但是当我这样做时,由于处理过程中产生的延迟,事件会丢失。所以我创建了一个新的 char 指针并 memcpy'd 从 /dev/fsevents 读取的缓冲区,并将新的 char* 添加到队列并在新线程中处理队列。但是当我像在'print_event'和'dump_entry'中处理char *时,char *指针会重新对齐,并且当我在处理后检查strlen()时,它只显示0或1字节长度。所以在处理过程中,内存正在泄漏。

知道如何删除分配的 char*,这会为更多事件泄漏更多内存。请分享您对此的看法。提前致谢。

0 投票
1 回答
199 浏览

objective-c - 使用 SCEvents(FSEvents 包装器)获取正确的文件通知?

我已经使用 SCEvents 实现了文件观察器部分:https ://github.com/mz2/SCEvents

它以 event_id、event_path 和 event_flags 的形式通知我。但是我应该如何获得引发哪个事件的信息。它没有提供任何详细信息,例如发生文件创建事件、发生文件重命名事件等。

我应该如何获得有关引发哪个事件的正确信息?

请提供指导。谢谢。

0 投票
0 回答
228 浏览

c++ - FSEvent 回调函数永远不会被调用

我正在我的软件中实现文件夹路径监控。由于递归监控的需求,我决定使用 FSEvents 框架而不是 Mac OS 版本的 k_queue。

我已经阅读了文件系统事件 API ,所以我像这个例子一样实现了我的包装类。

问题是永远不会调用回调函数。

0 投票
1 回答
338 浏览

cocoa - 在 XPC 服务中使用 FSEventStream 不起作用

我在我的 XPC 服务中使用 FSEventStream 时遇到了很大的麻烦(代码如下)。服务启动,流被创建,但回调函数从未被调用。当我将完全相同的代码复制到我的主应用程序并运行它时,它工作得很好。它在 XPC 服务中不起作用的原因可能是什么?我试图在这两个部分都禁用 AppSandbox,但它没有改变任何东西。对此的任何帮助都将受到高度赞赏。

代码:

我的回调函数:

0 投票
0 回答
335 浏览

python - 如何使用python在mac osx上获取文件关闭事件

在 osx 10.9 上使用 python 2.7

如何获取文件关闭事件(当打开的文件被红色十字上方复选标记关闭时):

  1. 当文件在文件打开器的选项卡中打开时(如 TextEdit,它在新选项卡中打开所有文件,但仅存在一个 TextEdit 运行进程)
  2. 在文件打开器的新进程中打开文件时(不遵循选项卡属性的文件打开器)

那么,如何在上述情况下获取文件关闭事件?是否可以通过通用代码实现上述情况?我正在处理不同的文件类型。我尝试使用MacFSEvents看门狗,但没有收到文件关闭事件。

0 投票
1 回答
450 浏览

objective-c - FSEventStream 更改路径以动态观看

我需要监视大量文件以进行删除或移动。而且这个列表可以动态变化很多次。是否可以在监控进行时更改观看路径FSEventStreamContext

有没有其他更好的方法来实现这一点,而不是使用FSEvents.

0 投票
2 回答
582 浏览

cocoa - FSEventStream - 过滤从我自己的应用程序生成的事件

我正在编写一个将数据保存到特定文件夹内的一组文本文件中的应用程序。当其他应用程序(如 Dropbox 或 TextEdit)更改文件时,我FSEventStream会收到通知,因此我可以使用提供的新文本内容更新我的应用程序。

问题是我的FSEventStream- 尽管我设置了一个kFSEventStreamCreateFlagIgnoreSelf标志 - 即使在我自己的应用程序中修改文件时我也会收到通知。

这带来了很多麻烦,因为在我保存文件并收到文件更改通知后,我必须重新检查文件。我们可以在这里谈论优化,但是以我的数据结构来说,这是很多不必要的操作和磁盘使用。

问题是:如何将 a) 文件事件与其他应用程序与 b) 使用我自己的应用程序生成的文件事件分开?

我认为可能有一种方法可以通过 FSEventID 获取 processID(后者在回调函数中提供)。但没有找到任何关于它的东西。看起来 EventID 仅用于定义 FileEvents 链中的顺序。

我想要的是忽略自生成的 FileSystem 事件。

这是我用来设置 FSEventStream 的代码:

以及回调函数:

0 投票
1 回答
1028 浏览

node.js - 推送到 Heroku 失败 - 错误 fsevents@0.2.0 安装:`node-gyp rebuild`

我正在尝试将我的应用程序推送到 Heroku,但我不断收到此错误,看起来像是node-gyp的问题,但不知道如何修复它。

0 投票
2 回答
702 浏览

cocoa - 连续将日志文件的内容写入 NSTextview

我在使用 NSTextview 时遇到问题,它应该使用日志文件的内容不断更新。该应用程序是一个主从 UI,主视图包含一组“备份”对象,而详细视图包含一个 NSTabView,其中一个选项卡包含 NSTextview。
基本上我想要tail -f logfile将它的输出放入 NSTextview 之类的东西。我没有使用 NSTask 等,而是将 NSTextview 的“属性字符串”绑定到我的“备份”对象的属性(这样我就可以设置字体):

备份.m

然后,我将一个FSEventStream连接到日志文件,该日志文件在每次日志文件更改时都会通知回调。在回调中,我手动通知侦听器该属性已更改并向下滚动 NSTextview:

备份.m

实际删除是通过以下方式完成的NSNotification

应用代理.m

这很有效,而且我比使用 NSTask 更喜欢代码,但是当我告诉NSArrayController删除“备份”对象时,应用程序偶尔会崩溃并出现奇怪的错误:

在我开始调试出了什么问题或实施NSTask/tail -f方法之前,我想知道:

这个问题有更优雅的解决方案吗?

0 投票
1 回答
176 浏览

ios - /dev/fsevents 中的 0x3F 0xB3 字节是什么?

我正在试验filemon 源代码。我正在调试它为什么在 iOS 7 上崩溃。我在 fsevents 方面没有太多经验,但我注意到在字节流中它可以从 /dev/fsevents 读取它遵循以下模式:

(fileop 信息) (args) 0x3F 0xB3 (fileop 信息) (args)

其中 (args) 中的 arg 遵循以下格式:

(arg id) (arg len) (arg 值)

0x3F 0xB3 是干什么用的?我猜这意味着0xBEEF?假设它是在 /dev/fsevents 中分隔不同文件操作信息的哨兵是否正确?