讀操作:
#include
#include
#include
#include
#include
#include
#include
struct ad
;struct ad* ptr;
intmain
(int argc,
char
*ar**)
while(1
)printf
("\n");
for(
int i=
0;i<
5;i++
)printf
("\n");
printf
("%s\n"
,ptr->s);}
int ret =
munmap
(ptr,len);if
(ret ==-1
)return0;
}
寫操作:
#include
#include
#include
#include
#include
#include
#include
struct ad
;struct ad* ptr;
int count=1;
intmain
(int argc,
char
*ar**)
while(1
)printf
("writing\n");
}int ret =
munmap
(ptr,len);if
(ret ==-1
)return0;
}
固定思路,先開啟檔案,然後把檔案對映到一種型別的資料結構所在的記憶體區,這樣改變資料結構中的內容就改變了檔案中的內容。讀取檔案時用到的就是指標偏移的原理,必須要用相同的資料結構,或者。。你知道位址偏移量也行,那樣多晦澀難懂啊。
,個人認為右邊這個講的不錯,b站一講linux系統程式設計程序間通訊
程序間通訊 mmap
void mmap void addr,size t length,int prot,int flags,int fd,off t offset 建立共享記憶體對映 引數 addr 指定對映區的首位址。通常傳null,表示讓系統自動分配 length 共享記憶體對映區的大小。檔案的實際大小 prot...
Linux程序共享通訊 mmap實現
使用mmap記憶體對映實現一端寫,另一端讀的程序間通訊 寫端 write.c write.c include include include include include include include 對映記憶體大小 define maplen 0x100 定義乙個學生資訊結構體 struct ...
非血緣關係程序間mmap通訊
建立乙個讀檔案 mmap r.c include include include include include include include struct stu void sys err char str intmain int argc,char ar fd open ar 1 o rdon...