mmap記憶體對映
資料寫入檔案
#include<stdio.h>
#include<sys/mman.h>
typedef struct{
int integer;
char string[24];
}RECORD;
#define NRECORDS (100)
int main(){
RECORD record, *mapped;
int i,f;
FILE *fp;
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);
fp = fopen("records.dat","r+");
fseek(fp,43*sizeof(record),SEEK_SET);
fread(&record,sizeof(record),1,fp);
printf("%d",record.integer);
record.integer = 143;
sprintf(record.string,"RECORD-%d",143);
fseek(fp,43*sizeof(record),SEEK_SET);
fwrite(&record,sizeof(record),1,fp);
fclose(fp);
}
記憶體對映
#include<unistd.h>
#include<stdio.h>
#include<sys/mman.h>
#include<fcntl.h>
#include<stdlib.h>
typedef struct{
int integer;
char string[24];
}RECORD;
#define NRECORDS (100)
int main(){
RECORD record, *mapped;
int f = open("records.dat",O_RDWR);
//對映大記憶體
mapped = (RECORD *)mmap(0,NRECORDS * sizeof(record),PROT_READ|PROT_WRITE,MAP_SHARED,f,0);
sprintf(mapped[43].string,"RECORD-%d",243);
//回寫到檔案
msync((void *)mapped, NRECORDS * sizeof(record), MS_ASYNC);
//關閉對映
munmap((void *)mapped,NRECORDS * sizeof(record));
close(f);
}
相關文章
- 使用記憶體對映檔案(mmap)記憶體
- 從記憶體對映mmap說開去記憶體
- Python mmap的使用-檔案記憶體對映Python記憶體
- 記憶體對映記憶體
- 從核心世界透視 mmap 記憶體對映的本質(原理篇)記憶體
- Linux 記憶體管理:記憶體對映Linux記憶體
- 從核心世界透視 mmap 記憶體對映的本質(原始碼實現篇)記憶體原始碼
- mmap共享儲存對映(儲存I/O對映)系列詳解
- VC++中用記憶體對映檔案 (轉)C++記憶體
- linux記憶體管理(八)- 反向對映RMAPLinux記憶體
- 二進位制檔案記憶體對映記憶體
- 記憶體對映檔案詳解-----C++實現(即一塊記憶體和一個檔案相對映對應)記憶體C++
- windows核心程式設計--記憶體對映檔案Windows程式設計記憶體
- 居然這就是C++記憶體對映檔案?!C++記憶體
- linux mmap應用與驅動共享記憶體Linux記憶體
- 非同步日誌 vs. 記憶體對映檔案非同步記憶體
- Android入門教程 | mmap 檔案對映介紹Android
- Linux系統程式設計—共享記憶體之mmapLinux程式設計記憶體
- C# .Net 多程式同步 通訊 共享記憶體 記憶體對映檔案 Memory MappedC#記憶體APP
- 一個記憶體檔案對映使用者類 (轉)記憶體
- 共享記憶體對映(linux程式與執行緒學習筆記)記憶體Linux執行緒筆記
- Java記憶體對映,上G大檔案輕鬆處理Java記憶體
- 溫故之.NET程式間通訊——記憶體對映檔案記憶體
- Java使用記憶體對映實現大檔案的上傳Java記憶體
- C#記憶體對映大檔案並使用Marshal解析結構體資訊C#記憶體結構體
- JAVA記憶體對映檔案實現多執行緒下載Java記憶體執行緒
- 漲姿勢系列之——核心環境下記憶體對映函式記憶體函式
- 記憶體對齊記憶體
- 遊戲記憶體對比普通記憶體區別 遊戲記憶體和普通記憶體相差大嗎?遊戲記憶體
- GO 記憶體對齊Go記憶體
- 理解記憶體對齊記憶體
- Java 中使用記憶體對映檔案需要考慮的 10 個問題Java記憶體
- 【IPC程式間通訊之三】記憶體對映檔案Mapping FileC程式記憶體APP
- Win 95下記憶體對映檔案的工作原理及使用方法 (轉)記憶體
- 結構體記憶體對齊結構體記憶體
- 記憶體管理概述、記憶體分配與釋放、地址對映機制(mm_struct, vm_area_struct)、malloc/free 的實現記憶體Struct
- JavaScript對記憶體的使用JavaScript記憶體
- C++ 記憶體對齊C++記憶體