首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mmap MAP_SHARED不工作

mmap MAP_SHARED不工作
EN

Stack Overflow用户
提问于 2013-12-14 01:49:30
回答 1查看 1.9K关注 0票数 1

我试图用mmap打开一个文件:它在使用MAP_PRIVATE时工作得很好,但是MAP_SHARED会导致一个无效的参数错误:mmap ist读/写文件

代码语言:javascript
运行
复制
int size;
struct stat s;
const char * file_name = argv[1];
int fd = open (argv[1], O_RDWR);
int pagesize = sysconf(_SC_PAGE_SIZE);

/* Get the size of the file. */
int status = fstat (fd, & s);
size = s.st_size;
size += pagesize-(size%pagesize);

//mmap memory
d = mmap (0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
//error handeling
if(d == -1)
{
    perror("mmap");
    printf("Error opening file %s\n",argv[1]);
    return -1;
}

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-14 11:57:20

我发现导致这个错误的原因是我在VM (Parallels)中使用Ubuntu,当我在我的原生系统上运行代码时,一切都很好。似乎Parallels没有在其文件系统驱动程序中实现这种内存修改..。

这个问题对我很有帮助:Invalid argument for read-write mmap?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20578800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档