【发布时间】:2011-05-20 18:43:11
【问题描述】:
我想分享使用 mmap。但是它不起作用,因为我遇到了段错误:
int fdL = open("/dev/zero", O_RDWR | O_CREAT);
int *ligneC = (int *) mmap(0, sizeof (int), PROT_READ | PROT_WRITE, MAP_SHARED, fdL, 0);
*ligneC = 0;
我哪里错了?
【问题讨论】:
-
您指定了
O_CREAT并且缺少模式;不过,这不是问题,因为我认为/dev/zero已经存在。这就是你所有的代码吗? -
错误来自:*ligneC = 0;我不知道为什么
-
让我“改写”一下:这就是你所有的代码?
-
不,这是针对学生项目(多进程的矩阵计算),但是对于这一步我必须使用mmap。还有其他方法可以在我的所有进程之间共享变量吗?
-
我的意思是它不应该失败,其他东西可能已经坏了。
标签: c segmentation-fault mmap