3 Stimmen

Mmap-Systemaufrufoperation, die auf Speicherplätze zugreifen kann

Ich schreibe ein Programm, das mit mmap riesige Speicherblöcke zuweist und dann auf zufällige Speicherplätze zugreift, um darin zu lesen und zu schreiben. Ich habe gerade den folgenden Code ausprobiert:

#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>

int main() {
    int fd,len=1024*1024;
         fd=open("hello",O_READ);
    char*addr=mmap(0,len,PROT_READ+PROT_WRITE,MAP_SHARED,fd,0);
    for(fd=0;fd<len;fd++)
putchar(addr[fd]);

    if (addr==MAP_FAILED) {perror("mmap"); exit(1);}

    printf("mmap returned %p, which seems readable and writable\n",addr);
    munmap(addr,len);

    return 0;
}

Aber ich kann dieses Programm nicht ausführen, ist etwas mit meinem Code nicht in Ordnung?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X