Mremap “inizializza” la memoria sulla crescita?

Se ho mmap () alcune pagine PRIVATE e ANONYMOUS e poi le estrao con mremap (), anche il nuovo spazio viene inizializzato a zero?

Ho provato a leggere il codice per mremap ( mm / mremap.c ) nel sorgente linux ma richiede alcune conoscenze specifiche del dominio che attualmente non ho (vma _ ### stuff). Non sono nemmeno sicuro che sia il posto giusto per guardare …

Ma da quello che ho raccolto penso che la memoria di mremap () sarà cancellata, è corretto?

L’allocazione è fatta in questo modo

list = mmap(NULL, newSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0) 

e quindi rimappare è fatto in questo modo

 newList = mremap(list, oldSize, newSize, MREMAP_MAYMOVE) 

Ah, e per ultimo, è una domanda specifica per Linux , con un kernel recente (> = 2.6.28) e libc (> = 2.11.1)

Le pagine anonime sono mappature copy-on-write della pagina zero universale. Sono sempre stati (su ogni sistema, non solo su Linux, che offre mappature anonime) e lo saranno sempre. Quando mremap (o brk ) estende una mapping anonima, ottieni nuove pagine anonime (zero). Non è necessario inizializzarli da soli.