将文件更改传播到文本编辑器

将文件更改传播到文本编辑器

我非常擅长编程(开发过一些应用程序,做过几次实习),但真的没有太多处理文本编辑器/文件系统细节工作的经验。以下是我正在尝试做的一些背景信息:

我想构建一个工具,让用户可以上传或挂载任何文本文件,在任何文本编辑器中打开/编辑它,并让另一个用户执行相同操作。用户之间的更改将通过此工具处理并传播给每个用户。

我最初的想法是,这样做可能是不可能的,因为文本编辑器可能会在文件上放置某种“锁”,或者它们先将文件存储在内存中,然后再将其保存到磁盘。我还认为可以将文件流式传输到编辑器,然后操纵该流……?我猜这也可能取决于每个文本编辑器及其工作方式。

所以我想知道是否有人可以给我一些建议或见解,关于文本编辑器如何编辑文件?它们会像我想象的那样将文件加载到内存中吗?加载后是否可以修改该内存,或者是否受到保护?

答案1

首先,大多数操作系统都提供了一个 API,用于注册文件更改时的通知(例如在 Windows 上 -http://msdn.microsoft.com/en-us/library/windows/desktop/aa365261%28v=vs.85%29.aspx)。在其他编辑器将更改提交到磁盘后,这很有用,另一种方法是轮询(在预定义的周期内重新读取文件)。

至于内存,访问其他进程的内存并不容易,通常的方法是让它们合作(例如通过使用进程间通信方法)。

相关内容