c++ - 在应用程序运行时,使嵌入可执行文件的二进制 blob 作为文件系统文件可访问。C/C++
问题描述
预期的步骤有点像(为简单起见,假设我们只针对 Linux):
- 在编译时将一些二进制 blob 嵌入到 C/C++ 可执行文件中。[好的,可以这样做]。
- 当应用程序运行时,嵌入的 blob 作为文件系统上的只读文件提供给其他程序,具有应用程序定义的路径和文件名(例如,像“/tmp/my_embedded_resource.bin”之类的地方)。[fmemopen 然后...?]
- 当应用程序退出(即使它崩溃)时,那些只读的“文件”(链接?)会被自动删除。
所以,这个问题的要点在上面的第 (2) 和 (3) 点之内。
提前致谢。
解决方案
您正在寻找的是FUSE
- 用户空间中的文件系统。
FUSE 允许您创建一个文件系统,该文件系统将由在用户空间中运行的应用程序导出(不需要内核模块)。
以下是指向hello world FUSE 示例的链接,这将是一个很好的开始品脱。
您将需要创建自定义函数,如下所示:
readdir
函数应该返回位于虚拟目录中的文件,open
并read
应提供文件的内容getattr
应该提供文件属性和init
将由 FUSE 调用以初始化 FS 的资源
FUSE 是可用于 Linux 和 macOS 的 *nix 库。
推荐阅读
- python - 如何过滤嵌套列集中的熊猫数据框?
- python - Raspberry Pi 上 Python 脚本作为服务的问题
- c# - 在 azure web 应用程序中为客户添加自定义域并自动添加让我们加密证书
- amadeus - 如何使用 PNR_AddmultiElements Amadeus 网络服务添加付款方式
- python - 如何设置 pylint 分数阈值?
- mongodb - 猫鼬 - 如何等待保存
- azure - Azure 函数 - 无法加载文件或程序集
- laravel - 我是 laravel 的新手,试图从一个控制器通过 api 将数据存储到多个表中
- c++ - 为什么允许 int 和 const int 的不同转换函数?
- python - 当数据框的列包含多个值时选择数据框的行