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