如何使用 Dlang 或 cpp 捕获和修改文件的读写

How to capture and modify read and writes on file using Dlang or cpp

假设另一个程序要写入或读取特定文件。当它这样做时,我需要能够读取或写入并以我喜欢的方式处理(例如,程序 X 想要读取位于 /path/file.txt 的文件,但程序 Y(我的程序)读取 "request" 并为程序 X 提供位于 /path/file2) 的另一个文件的第一个 2KiB 加密。本质上,每当读取或写入指定文件时,我的程序都会被调用,它将处理 Dlang 或 C++ 中的读取或写入请求。我无法为此创建一个新的文件系统 :( 并且它至少必须与 Linux 一起工作(因此任何特定于 Linux 的东西都可以工作)。此外,我对读取或写入的响应至关重要并且不对结果进行预处理,抱歉,示例中不清楚。

你需要的是一个可查找的FIFO(命名管道)。它已经被提议,但据我所知它还没有实现(检查 Linux 内核更新日志,也许它已经实现但我不知道)。

按照建议,一个新的小型文件系统是您的最佳选择。幸运的是,使用 FUSE 项目编写一个非常简单。