Estoy confundido por el specification of mmap.alineación y granularidad de mmap
Vamos pa
ser la dirección de retorno de mmap (la misma que la especificación)
pa = mmap (addr, len, Prot, banderas, fildes, off);
En mi opinión después de la llamada a la función éxito del siguiente rango es válida
[pa, pa + len)
Mi pregunta es si el rango de los siguientes es ¿todavía válido?
[ROUND_DOWN (pa, tamaño de página), round_up (PA + len, tamaño de página))
[base, base + size] por sus siglas en
Es decir:
- es el
base
siempre alineado en el límite de la página? - es el
size
siempre un múltiplo de pagesize (la granularidad es pagesize en otras palabras)?
Gracias por su ayuda.
creo que se da a entender en este párrafo:
El fuera argumento está obligado a estar alineados y dimensionados de acuerdo con el valor devuelto por sysconf() cuando se pasa _SC_PAGESIZE o _SC_PAGE_SIZE. Cuando se especifica MAP_FIXED, la aplicación debe garantizar que el argumento addr también cumple estas restricciones. La implementación realiza operaciones de mapeo en páginas completas. Por lo tanto, aunque el argumento len no necesita cumplir con una restricción de tamaño o alineación, la implementación incluirá, en cualquier operación de mapeo, cualquier página parcial especificada por el rango [pa, pa + len).
Pero no estoy seguro y no tengo mucha experiencia en POSIX.
- Por favor, dame algo más explícita y más definitiva pruebas
- o Me muestran al menos un sistema que soporta POSIX y tiene un comportamiento diferente
Gracias alquilásemos.