Quiero crear un archivo binario mapeado en la memoria; sin embargo, no estoy seguro de cómo crear el archivo para mapearlo en el sistema. Leí la documentación varias veces y me doy cuenta de que hay 2 implementaciones de archivos mapeados, una en iostream y la otra en interproceso.¿Hay alguna diferencia entre el archivo mapeado iostream de boost y el archivo mapeado entre procesos de impulso?
¿Tienen alguna idea sobre cómo crear un archivo mapeado en la memoria compartida? Estoy tratando de permitir que un programa de subprocesos múltiples lea una matriz de doble grande escrito en un formato de archivo binario. ¿Cuál es la diferencia entre el archivo mapeado en iostream e interproceso?
Gracias por la aclaración Joe, voy a probar iostream. – Yijinsei
@Joe D: esa no es la impresión que obtengo de la biblioteca entre procesos, en absoluto. Específicamente, de la documentación: "el sistema crea una asignación de archivos para asociar el archivo y el espacio de direcciones del proceso". Para procesos múltiples, esencialmente compartió memoria con una copia de seguridad del sistema de archivos. – rcollyer
Sí, pero la biblioteca entre procesos no crea una copia de seguridad del sistema de archivos, simplemente asigna el archivo en la memoria compartida entre procesos. Sin embargo, iostreams, lo mapeará en la memoria para un solo proceso. Que es probablemente (no he comprobado la implementación) más eficiente. –