免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 4122 | 回复: 3

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

论坛徽章:
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
发表于 2018-07-26 14:54 |显示全部楼层
munmap 调用错误

论坛徽章:
0
发表于 2018-08-04 17:12 |显示全部楼层
服务器租用请联系QQ 2880269166

论坛徽章:
0
发表于 2018-08-17 23:48 |显示全部楼层

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



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

本版积分规则 发表回复

数据风云,十年变迁
DTCC 第十届中国数据库技术大会已启航!

2019年5月8日~5月10日,由IT168旗下ITPUB企业社区平台主办的第十届中国数据库技术大会(DTCC2019),将在北京隆重召开。大会将邀请百余位行业专家,就热点技术话题进行分享,是广大数据领域从业人士的又一次年度盛会和交流平台。与SACC2018类似,本届大会将采用“3+2”模式:3天传统技术演讲+2天深度主题培训。大会不仅提供超100场的主题演讲,还会提供连续2天的深度课程培训,深化数据领域的项目落地实践方案。
DTCC2019,一场值得期待的数据技术盛会,殷切地希望您报名参与!

活动入口>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP