我有一个非常大的磁盘驱动器(2TB),但内存不是很大(8GB)。我希望能够在我的磁盘文件系统上的一个大文件(~200 on )上运行一些大数据实验。我知道这将是非常昂贵的磁盘带宽,但我不介意高I/O使用。
如何将这个巨大的文件加载到C++数组中,以便在我选择的位置执行对文件的读和写操作?mmap是否为此目的而工作?我应该使用哪些参数选项来完成此操作?我不想在运行我的程序的任何时候触发OOM杀手。
我知道mmap支持文件支持和匿名映射,但我不完全确定使用哪种映射。那么在使用私有映射还是共享映射之间呢?