gpt4 book ai didi

C++/C 虚拟/可嵌入文件系统 [交叉兼容(库)]?

转载 作者:太空狗 更新时间:2023-10-29 20:29:16 27 4
gpt4 key购买 nike

我想尝试使用一些虚拟文件系统,例如拥有 1 个存储所有数据的文件(1 个文件 = 虚拟磁盘)。例如我可以打开虚拟磁盘并将文件放入其中,将数据写入文件,从文件中读取数据,打开文件并使用 fseek 等。

我可以使用任何库吗?许可证之类的东西并不重要。我只是想在我的机器上测试它,因为我很无聊,所以我想在 C++/C 中尝试这个。

提前致谢! :)

如果库只有 windows 也可以,也许我会找到一个 linux 库,这样我就可以做 2 个项目?


编辑:感谢 BRPocock,我知道我的问题有点不清楚。我真正想要的是一个库,它能够在库已经提供的 VFS 上存储文件、读取文件和执行文件操作。当然还有安装。所以,如果有一个库可以在 C++ 中为我提供此功能,我会更喜欢:

OpenVirtualDrive(const name[]);//
CloseVirtualDrive(handle);//
fopen(const name[], mode);//open file, return handle
fclose(handle);//close handle
ftemp(); //open file as temporary file
fremove(const name[]);//delete file

fwrite(handle, array[]);//write array to file
fread(handle, array[], size = sizeof array, pack = false);//read from file
fputchar(handle, value, utf8 = true);//put char into file
fgetchar(handle, value, utf8 = true);//read char from file, move pointer
fblockwrite(handle, const buffer[], size = sizeof buffer);//write block
fblockread(handle, buffer[], size = sizeof buffer);//read block, move pointer

fseek(handle, position = 0, seek_whence: whence = seek_start);//move pointer
flength(handle);//size of file
fexist(const pattern[]);//check if file exists
fmatch(name[], const pattern[], index = 0, size = sizeof name);//search for file

这只是伪代码:P

最佳答案

Linux(和许多 BSD,我相信包括 MacOSX)使用 FUSE 系统 (http://fuse.sourceforge.net/) 来提供这些类型的服务。您应该能够在“网络”上找到许多示例。

我相信在 Windows 上做同样事情的“公认”方法是将其编写为设备驱动程序可加载模块 (.dll) ... 快速谷歌搜索指向 http://msdn.microsoft.com/en-us/windows/hardware/gg463062作为起点,也许。

关于C++/C 虚拟/可嵌入文件系统 [交叉兼容(库)]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10520856/

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