预期的步骤有点像(为了简单起见,假设我们只针对Linux):
- 在编译时将一些二进制blob嵌入到C/c++可执行文件中。[ok,可以这样做].
- 当应用程序运行时,嵌入式blob作为文件系统上的只读文件可供其他程序使用,这些文件具有应用程序定义的路径和文件名(例如在某处像"/tmp/my_embedded_resource.bin")打开,然后……?]
- 当应用程序退出时(即使它崩溃了),那些只读的文件;(链接?)自动删除。
所以,这个问题的要点在上面(2)和(3)点之内。
提前感谢。
关键字:共享内存对象
查看shm_open.
您要查找的是FUSE
-用户空间中的文件系统。
FUSE允许您创建一个文件系统,该文件系统将由在用户空间中运行的应用程序导出(不需要内核模块)。
下面是hello world FUSE示例的链接,这将是一个很好的开始。
您需要创建自定义函数,如下所示:
readdir
函数应该返回位于虚拟目录中的文件,open
和read
应提供 文件的内容getattr
应该提供文件属性和init
将被FUSE调用来初始化FS 的资源。
FUSE是Linux和macOS的*nix库。