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