/*-------------map_normalfile2.c-----------*/
#include #include #include #include #include #include #include typedef struct people;
int main(int argc, char** argv)
;
fd=open( "map_normalfile.in", o_creat|o_rdwr, 00777 );
p_map = (people*)mmap( null,sizeof(people)*10*3,prot_read|prot_write,map_shared,fd,0 );
p_map_seg1 = p_map;
p_map_seg2 = p_map+10;
p_map_seg3 = p_map+20;
close( fd );
printf("p_map=0x%x\n", p_map); //在各個程序中對映同一檔案, mmap返回的記憶體映像位址相同
printf("*****===write seg2***************====\n");
for(i=0; i<10; i++)
printf(" initialize seg2 over \n ");
sleep(10);
printf("*****====all data***************===\n");
for(i = 0;i<30;i++)
sleep(30);
munmap( p_map, sizeof(people)*10*3 );
printf( "umap ok \n" );
return 0;
}
程序通訊 共享記憶體
定義 共享記憶體,就是通過核心操作,在記憶體上開闢一塊供多個程序共同訪問的記憶體塊。這塊記憶體塊的建立和 銷毀是由核心來控制 當然,也可以在程序內部呼叫系統庫函式來建立和銷毀,類似於訊息機制和訊號 量機制 在這個記憶體塊上,程序可以像操作記憶體一樣操作共享區記憶體。作用 第乙個,就是提供程序間大資訊...
程序通訊共享記憶體
共享記憶體是允許多個程序共享記憶體 共享記憶體結構 struct shmid ds struc ipc permshm perm 指向該記憶體指標 int shm segsz 共享記憶體的大小 ushort shm lkcnt 共享記憶體被鎖定的時間 pid t shm cpid 最近呼叫shomp...
程序間通訊 共享記憶體
下面是自己寫的乙個簡單的共享記憶體的程序間通訊的例子。共享記憶體是用於程序間大量資料共享的一種方法。include include include include include include int main if buf1 shmat shmid,0,0 void 1 strcpy buf1,...