免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8418 | 回复: 3
打印 上一主题 下一主题

[Linux] mmap调用写入了文件映射,但是最后发现文件没变 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2018-07-26 12:35 |只看该作者 |倒序浏览
我测试一下mmap映射一个文件并更新其内容,如下:
  1. #include<sys/mman.h>
  2. #include<sys/types.h>
  3. #include<sys/stat.h>
  4. #include<unistd.h>
  5. #include<stdio.h>
  6. #include<fcntl.h>
  7. void main(){
  8.       int i,sum;
  9.       int fd=open("test.dat", O_RDWR|O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
  10.       int*result_ptr=mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED|MAP_ANONYMOUS,fd,0);
  11.       *result_ptr=15;
  12.       munmap(0,4);
  13.       close(fd);
  14.       printf("result=%d\n",*result_ptr);
  15. }
复制代码



能打印出15.但是如果我
od test.dat
显示的却是0000000

看起来文件内容并没有被更新。这是为什么呢,我哪里有误?
谢谢


论坛徽章:
0
2 [报告]
发表于 2018-07-26 14:54 |只看该作者
munmap 调用错误

论坛徽章:
0
3 [报告]
发表于 2018-08-04 17:12 |只看该作者
服务器租用请联系QQ 2880269166

论坛徽章:
0
4 [报告]
发表于 2018-08-17 23:48 |只看该作者

知道了,應該是:
munmap(result_ptr,4);



您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP