天天看點

建立共享記憶體

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" );

繼續閱讀