使可执行嵌入式二进制blob在应用程序运行时可作为文件系统文件访问.C / c++



预期的步骤有点像(为了简单起见,假设我们只针对Linux):

  1. 在编译时将一些二进制blob嵌入到C/c++可执行文件中。[ok,可以这样做].
  2. 当应用程序运行时,嵌入式blob作为文件系统上的只读文件可供其他程序使用,这些文件具有应用程序定义的路径和文件名(例如在某处像"/tmp/my_embedded_resource.bin")打开,然后……?]
  3. 当应用程序退出时(即使它崩溃了),那些只读的文件;(链接?)自动删除。

所以,这个问题的要点在上面(2)和(3)点之内。

提前感谢。

关键字:共享内存对象

查看shm_open.

您要查找的是FUSE-用户空间中的文件系统。

FUSE允许您创建一个文件系统,该文件系统将由在用户空间中运行的应用程序导出(不需要内核模块)。

下面是hello world FUSE示例的链接,这将是一个很好的开始。

您需要创建自定义函数,如下所示:

  • readdir函数应该返回位于虚拟目录中的文件,
  • openread应提供
  • 文件的内容
  • getattr应该提供文件属性和
  • init将被FUSE调用来初始化FS
  • 的资源。

FUSE是Linux和macOS的*nix库。

相关内容

最新更新