繁体   English   中英

C中的无缝内存映射文件

[英]Seamless memory-mapped files in C

我正在C中创建几个程序,这些程序必须通过文件进行通信。

他们将使用文件,因为通信不是线性的,即程序#5可以使用程序#2创建的文件。

这些程序的执行将是线性的(串行)。

将只有一个控制程序来管理这些级联程序的执行。 该程序将是创建文件的程序,并且应仅将文件名传递给程序

由于磁盘I / O速度很慢(假设操作系统未缓存这些操作),因此我需要使用内存映射文件。

但是,要求是控制程序可以在常规文件和内存映射文件之间无缝切换-这意味着级联程序必须不知道它们是在向内存映射文件中写入还是从内存映射文件中读取/读取。一。

如何创建一个文件,将其作为普通文件呈现给系统的其余部分(在FS层次结构中有一个位置,可以读取和写入文件名),但实际上在内存中而不是磁盘?

您在此处使用的术语有点奇怪-内存映射是一种访问文件(任何文件)的方法,而不是与磁盘上存储的文件分开的一种文件类型。

话虽如此,如果您想将某些文件写到磁盘上,而另一些文件不写到磁盘上,最简单的方法是将它们存储在内存文件系统中,例如tmpfs 在大多数Linux系统上,通常在/dev/shm安装了其中之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM