創建共享內存

linux下不同進程間的通訊可以使用共享內存來互相傳遞消息,方法如下:

#define MY_SHM_ID 67480  //key_id可以通過fork函數獲得 

int shmid;    

char *shmptr;

if((shmid = shmget(MY_SHM_ID, 1, IPC_CREAT)) ==-1)     //創建一個字節的共享內存,如果已經創建則不創建可直接獲取
{
printf("shmget error \n");
}

if((shmptr =shmat(shmid,0,0))==(void *)-1)    
{    
printf("shmat error!\n");  
}

strcpy(shmptr, "0");      //往共享內存裏面寫入一個字節。
if((shmdt(shmptr)) == 0)  
       printf( "detached memory \n" );
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章