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