我有一个 void *buffer
,它是 RAM 中文件的一个实例。
文件类型的格式必须由给定的 API 解析。
不幸的是,通过 API 打开这种文件类型的唯一方法是向 API 提供文件路径:
sample_api_open(char *file_name, ...);
我知道 shm_open
返回文件描述符,但 API 只需要一个文件路径。
是否有解决方法来读取内存中的此类文件?
最佳答案
Is there a work around to read this type of file in memory?
将缓冲区的内容转储到 /tmp
上的临时文件中。
在绝大多数现代 *NIX 系统上,/tmp
是一个合成的内存文件系统。仅在内存不足的情况下,内容可能会因交换而打到磁盘。
如果信息量太大,为了避免重复,将内容转储到/tmp
后,可以释放本地内存,mmap()
文件内容。
关于c - 内存文件的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29548395/