記憶體對映函式

2021-07-24 03:16:22 字數 1316 閱讀 9576

記憶體對映函式

#include

//把檔案內容和一塊同樣大小的記憶體空間關聯起來

void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);

addr:null 系統自動分配記憶體空間

length:檔案中內容的大小

prot:prot_read prot_write prot_exec prot_none

flags:map_shared map_private

fd:記憶體關聯的檔案描述符

offset:檔案內容相對於檔案開始的偏移量

//撤銷檔案內容和記憶體的關聯

int munmap(void *addr, size_t length);

addr:mmap函式的返回值

length:檔案內容的大小

#include

int msync(void *addr, size_t length, int flags);

addr:mmap函式的返回值

length:檔案內容的大小

flags:ms_sync(同步) ms_async(非同步) ms_invalidate

例子:typedef struct record

int integer;

char name[32];

}record;

int main()

//標準檔案讀寫

file *fp=null;

int i=0;

fp=fopen("record.dat","w");

record tmp;

for(i=0;i<100;i++)

tmp.integer=i;

sprintf(tmp.name,"record-%d",i);

fwrite(&tmp,sizeof(tmp),1,fp);

fclose(fp);

//使用標準檔案io讀寫

fp=fopen("record.dat","r+");

fseek(fp,43*sizeof(record),seek_set);

fread(&tmp,sizeof(tmp),1,fp);

tmp.integer=143;

sprintf(tmp.name,"record-%d",tmp.integer);

fseek(fp,43*sizeof(record),seek_set);

fwrite(&tmp,sizeof(tmp),1,fp);

fclose(fp);

return 0;

記憶體對映函式

mmap函式 文章分類 c 程式設計 mmap函式的使用方法 unix網路程式設計第二卷程序間通訊對mmap函式進行了說明。該函式主要用途有三個 1 將乙個普通檔案對映到記憶體中,通常在需要對檔案進行頻繁讀寫時使用,這樣用記憶體讀寫取代i o讀寫,以獲得較高的效能 2 將特殊檔案進行匿名記憶體對映,...

python 函式對映 Python對映函式

我需要一些關於python的map函式的幫助。我正在嘗試執行此 但出現錯誤 更新帖子 這是我的確切 以及每個函式的輸出 infinity 1000000 invalid node 1 startnode 0 values to assign to each node class node def i...

休眠函式與訊號對映函式

下面 3 個函式可以使程序休眠指定的時間 會有所延遲 include unsigned int sleep unsigned int second 返回值 0 或未休眠完的秒數 include int nanosleep const struct timespec reqtp,struct time...