Red de conocimiento informático - Material del sitio web - Cómo usar C++ para leer y escribir un archivo grande que supere 2G. El propósito es mantener un archivo grande en la memoria en bloques.

Cómo usar C++ para leer y escribir un archivo grande que supere 2G. El propósito es mantener un archivo grande en la memoria en bloques.

Muchos puntos, yo también los quiero. Pero alguien ya ha respondido. Los archivos grandes se pueden leer parte por parte, lo que se implementa en Windows como un archivo mapeado en memoria virtual. No puede usar su propio flujo de archivos porque se implementa llamando a la API del sistema y carece de parámetros, por lo que puede asignar de forma segura todos los archivos a la memoria. El espacio de direcciones virtuales de un sistema general es 2G para los usuarios y solo 3G en el servidor. El 2G obviamente incluye los archivos de programa en sí y las DLL del subsistema de entorno. Por lo tanto, quedan menos de 2G, lo cual no es suficiente ahora, por lo que no se puede usar la secuencia de archivos en C++. Puede usar la función API que viene con el sistema Windows para lograr la lectura del mapeo de bloques. Por supuesto, debe liberar un bloque después de leerlo; de lo contrario, al final no será suficiente, puede leer un libro.