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

C++ C++/C虚拟/嵌入式文件系统[交叉兼容(库)]?,c++,c,filesystems,virtual,C++,C,Filesystems,Virtual,我想尝试一些虚拟文件系统,比如有一个文件,其中存储了所有数据(1个文件=虚拟磁盘)。例如,我可以打开虚拟磁盘并将文件放入其中,将数据写入文件,从文件中读取数据,打开文件并使用fseek等 有图书馆可以用吗?许可证之类的东西并不重要。我只是想在我的机器上测试它,因为我出生了,所以我想在C++/C中试试 提前感谢!:) 如果库是windows only,那么也可以,也许我会找到一个linux库,这样我就可以做两个项目了 编辑: 多亏了布波科克,我知道我的问题有点不清楚。我真正想要的是一个库,它能够

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

有图书馆可以用吗?许可证之类的东西并不重要。我只是想在我的机器上测试它,因为我出生了,所以我想在C++/C中试试

提前感谢!:)

如果库是windows only,那么也可以,也许我会找到一个linux库,这样我就可以做两个项目了


编辑: 多亏了布波科克,我知道我的问题有点不清楚。我真正想要的是一个库,它能够在该库已经提供的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
)…也许可以用谷歌快速搜索作为起点。

我们将完成这项工作。评估许可证对您来说是可以的,我们也为非商业性公共项目提供免费许可证。如果您想要一个文件系统从其他应用程序可见,那么您需要SolFS的OS版本,如果您只想从应用程序调用它的函数,那么SolFS应用程序版本就足够了

这并不是说我想完全自己创建一个新的文件系统,呵呵:D保险丝连接看起来很有用,谢谢,但windows工具包简单地说,你也必须自己制作FS。我更喜欢先在Windows上制作,然后在Linux上制作:嗯,你的问题所描述的实际上是制作一个新的文件系统。但是,如果您只想创建一个虚拟块设备,您可以在其中存储其他人的文件系统(例如FAT文件系统),请查看块设备的Windows设备驱动程序。在Linux上,您可以在本地使用
loop
文件系统设备(将文件系统“回环”到文件上),我发现了,但我需要一些关于如何使用它的示例:$这听起来像是操作系统级别的东西,可能不需要编写任何C/C++代码。您可以在某处创建一个“磁盘映像”文件,然后将该映像装载为读/写磁盘。Linux通过
loop
FS和
mount
命令来实现这一点。Mac OS X在Disk Utility中创建图像,Finder可以直接装载图像(只需双击它们)。不知道Windows是做什么的,但我敢打赌像VirtualCloneDrive这样的东西就是你所需要的。一旦这样做了,你就可以用任何语言的标准文件操作来访问你的图像。类似的方法可能会提供一些想法…听起来真的很有趣。要获得此类许可证,如果我进行公共项目,我需要通过电子邮件与该公司联系吗?@GamErix是的,当然,请按照网站上的说明与我们联系