|
|||||||
|
|
MREMAPSection: Linux Programmierhandbuch (2)Updated: 4. Juni 1996 Index Return to Main Contents BEZEICHNUNGmremap - verlege eine virtuelle SpeicheradresseÜBERSICHT#include <unistd.h>#include <sys/mman.h> void * mremap(void * old_address, size_t old_size , size_t new_size, unsigned long flags); BESCHREIBUNGmremap erweitert (oder verkleinert) einen bestehenden Speicherbereich, potentiell durch gleichzeitiges Verschieben (bestimmt durch das Argument flags und den zur Verfügung stehenden virtuellen Speicherplatz).old_address ist die alte Adresse des virtuellen Speicherblocks den man vergrößern (oder verkleinern) möchte. Beachten Sie, daß old_address an die Speicherseiten ausgerichtet sein muß. old_size ist die alte Größe des virtuellen Speicherblocks. new_size ist die angeforderte Größe des virtuellen Speicherblocks nach der Größenänderung. Das Argument flags ist ein Bitmuster von Flags. Unter Linux ist der Speicher in Seiten eingeteilt. Ein Benutzerprozes hat (eine oder) mehrere lineare virtuelle Speichersegmente. Jedes virtuelle Speichersegment hat ein oder mehr Verknüpfungen zu realen Speicherseiten (in der Seitentabelle). Jedes virtuelle Speichersegment hat seine eigenen Schutz (Zugriffsrechte), welcher eine Segmentverletzung (Segmentation violation) verursachen kann wenn auf den Speicher unkorrekt zugegriffen wird. Zugreifen auf virtuellen Speicher außerhalb der Segmente verursacht auch eine Segmentverletzung. mremap benutzt das Linux Seitentabellenschema. mremap ändert die Verknüpfung zwischen virtuellen Adressen und Speicherseiten. Dies kann benutzt werden im ein sehr effizientes realloc zu implementieren. FLAGS
RÜCKGABEWERTBei Erfolg gibt mremap einen Pointer auf den neuen virtuellen Speicherbereich zurück. Im Fehlerfall wird -1 zurückgegeben und errno entsprechend gesetzt.FEHLER
SIEHE AUCHgetpagesize(2), realloc(3), malloc(3), brk(2), sbrk(2), mmap(2) Ihr Lieblings-Betriebssystem-Buch für mehr Informationen über paged memory. (Modern Operating Systems von Andrew S. Tannenbaum, Inside Linux von Randolf Bentson, The Design of the UNIX Operating System von Maurice J. Bach.)
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |