Por lo tanto, entiendo que si necesita memoria dinámicamente asignada, puede usar malloc(). Por ejemplo, su programa lee un archivo de longitud variable en un char []. No sabe de antemano qué tan grande es hacer su matriz, por lo que asigna la memoria en tiempo de ejecución.Cuándo usaría mmap
Estoy tratando de entender cuándo usaría mmap(). He leído la página del manual y, para ser sincero, no entiendo cuál es el caso de uso.
¿Alguien puede explicarme un caso de uso en términos simples? Gracias por adelantado.
¿Tiene un enlace con más detalles sobre cómo acceder a un archivo grande con solo una pequeña cantidad de memoria? Este punto me confunde sobre la forma en que funciona mmap() ... – Ioan
@Ioan No hay realmente ningún detalle para archivos grandes: simplemente 'mmap' ellos. El archivo tiene que caber en la memoria _virtual_ por supuesto, pero no es necesario que toda la memoria virtual esté presente en la memoria RAM en ningún momento dado. 'mmap' utiliza el mismo mecanismo que el espacio de intercambio. Pero una explicación de cómo funciona la memoria virutal sería demasiado larga para un comentario :) –
Tu comentario tiene más sentido. Entendí mal lo que quería decir con el procesamiento de archivos más grandes que la memoria disponible. – Ioan