程序通訊 共享記憶體 mmap code2

2021-05-27 19:37:43 字數 913 閱讀 7509

/*-------------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,...