1. 初始化
#define DATNAME_SID "sid.dat"
int *pG_sid;
void InitSharedData()
{
int t_sid;
int fd;
memset((unsigned char*)&t_sid,0x00,sizeof(int));
fd = open(DATNAME_SID,O_CREAT|O_RDWR|O_TRUNC,00666);
if ( fd > 0 )
{
write(fd,(unsigned char*)&t_sid,sizeof(int));
close(fd);
}
else
{
perror(DATNAME_SID);
exit(1);
}
}
2. 绑定内存
int bindShareData(void)
{
int fd;
fd = open(DATNAME_SID, O_RDWR,0666);
if(fd < 0)
{
return -1;
}
pG_sid = (int *)mmap(NULL,sizeof(int),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
close(fd);
if (MAP_FAILED == pG_sid)
{
return -1;
}
return 0;
}
DATNAME_SID, O_RDWR,0666);
if(fd < 0)
{
return -1;
}
pG_sid = (int *)mmap(NULL,sizeof(int),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
close(fd);
if (MAP_FAILED == pG_sid)
{
return -1;
}
return 0;
}
3. 解除映射
void freeShareData( void )
{
munmap(pG_sid,sizeof(int));
return ;
}