Linux程序设计-mmap使用
来源:互联网 发布:mac如何安装flash插件 编辑:程序博客网 时间:2024/05/17 09:22
#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <sys/mman.h>#include <fcntl.h>typedef struct { int integer; char string[24];} RECORD;#define NRECORDS (100)int main(){ RECORD record, *mapped; int i, f; FILE *fp;//---------------------------------------------------------------------//往文件中写入结构体即: RECORD-%0 到 RECORD-%99//--------------------------------------------------------------------- fp = fopen("records.dat","w+"); for(i=0; i<NRECORDS; i++) { record.integer = i; sprintf(record.string,"RECORD-%d",i); fwrite(&record,sizeof(record),1,fp); } fclose(fp);//---------------------------------------------------------------------//从文件中读出结构体record,并为其赋值再写到文件去.//向后移动43个,下标从0开始正好是第43个//--------------------------------------------------------------------- fp = fopen("records.dat","r+"); fseek(fp,43*sizeof(record),SEEK_SET); fread(&record,sizeof(record),1,fp); record.integer = 143; sprintf(record.string,"RECORD-%d",record.integer); fseek(fp,43*sizeof(record),SEEK_SET); fwrite(&record,sizeof(record),1,fp); fclose(fp);//把f指向文件0地址开始大小为NRECORDS*sizeof(record)映射到内存处,返回内存起始地址//---------------------------------------------------------------------//把文件映射到内存去,并改变内存中其值,等于就是在改变文件中的内容的!!//--------------------------------------------------------------------- f = open("records.dat",O_RDWR); mapped = (RECORD *)mmap(0, NRECORDS*sizeof(record), PROT_READ|PROT_WRITE, MAP_SHARED, f, 0); mapped[43].integer = 243; sprintf(mapped[43].string,"RECORD-%d",mapped[43].integer);//实现磁盘文件内容与共享内存区中的内容一致,即同步操作 msync((void *)mapped, NRECORDS*sizeof(record), MS_ASYNC); munmap((void *)mapped, NRECORDS*sizeof(record)); close(f); exit(0);}
0 0
- Linux程序设计-mmap使用
- linux mmap 使用
- Linux mmap的使用
- Linux mmap调用使用经验
- linux下mmap的使用
- linux c之mmap使用
- Linux中的mmap的使用
- linux下mmap内存映射的使用
- linux多线程【7】mmap的使用
- linux下使用mmap控制GPIO
- linux mmap
- Linux mmap
- Linux mmap
- Linux mmap
- linux mmap
- Linux mmap
- linux mmap
- mmap使用
- 14周项目一动物这样叫
- 非常高效的文件处理 API 和 CFile 的使用详解
- eclipse中android单元测试
- PostgreSQL 中 index scan 与 seq scan 的对比学习
- android_wifi读书笔记之3-JNI层 分析
- Linux程序设计-mmap使用
- JAVA学习随记1
- android_wifi读书笔记之4-HAL层分析
- linux 比较文件相同部分comm命令和不同部分diff命令
- 推荐一个比较好的.net论坛,http://bbs.netluntan.com
- 多参多线程
- 形状类族的中的纯虚函数
- 请放下你的无效社交
- wifidog 认证