3
我正在编写一个程序,它使用mmap分配大量内存,然后访问随机内存位置来读取和写入内存。 我只是尝试了下面的代码:Mmap系统调用操作能够访问内存位置
#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;
}
但我不能执行这个程序,是有什么错我的代码?