gpt4 book ai didi

linux - 系统如何监听文件变化?

转载 作者:太空宇宙 更新时间:2023-11-04 09:40:53 25 4
gpt4 key购买 nike

操作系统层面,它如何实现知道某些东西发生了变化(比如文件变化)

例如:
在 node 中,我们可以监控文件并在文件发生变化时执行一些操作

fs.watch(file_path,function(){
//do something while the file's changed;
});

谁能给我一个简短的直觉/想法/关键字来说明它是如何工作的

我能想出的一个是,当我在 vim 中点击 :w 时,它以某种方式调用了一些系统 *fake_save_file* 函数,并且在这个 *fake_save_file* 函数中,它将一些事件分派(dispatch)到其他地方

最佳答案

您可能知道内核将文件系统中的文件索引为文件描述符。文件监视是通过监听这些文件描述符的更改来实现的。在 Linux 中 inotify这样做。

每当您打开、读取、写入/修改或移动文件时,内核都会对文件描述符发出操作。 Inotify 通过跟踪这些操作并向您显示它们来扩展文件系统。

您举的例子有些不正确。 fake_save_file 由您的文本编辑器 vim 创建,用于存储所做的临时更改,除非您用户实际保存它。当您使用 :w 保存它时,编辑器会将您的 actual_save_file 替换为 fake_save_file 的副本。

作为用户,您将看到您的 actual_save_file。当您在 vim 中输入 :w 时,这会发生变化。当 vim 修改其内容时,您会收到通知。

关于linux - 系统如何监听文件变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21622099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com