/************** Begin of sharedmemory.h *******************************************/
#if defined(linux)  && defined(HAVE_SHM)
	/***************************************************************************
	|sharedmemory.h|  -  sharedmemory类的头文件-声明sharedmemory类
	-------------------
	begin                : |03-6-20|
	modify               : |03-6-20|
	copyright            : (C) |YEAR| by |wenhm(温辉敏)|
	email                : |EMAIL|
	***************************************************************************/

#ifndef SHAREDMEMORY_H
#define SHAREDMEMORY_H

#include <sys/types.h>

	//创建或关键字为Key的含有大小为size的共享内存对象，并将共享内存对象id放于shmid中返回。
	//若共享内存对象已存在则取得该对象
	extern int create_sharedmemory(key_t key, int size);

	//创建关键字Key为IPC_PRIVATE(即关键字由系统选定)的含有大小为size的共享内存对象，并将共享内存对象id放于shmid中返回。
	//因使用IPC_PRIVATE创建的共享内存的key都一样，所以key就不要了。
	extern int create_sharedmemory_private(int size);

	//将共享内存attach到进程自己得空间内，函数返回指向映射内存的指针。
	extern void *attach_sharedmemory(int shmid );

	//将共享内存disattach，唯一的参数是共享内存映射的指针
	//返回值： -1 on error: errno = EINVAL (Invalid attach address passed)
	extern int disattach_sharedmemory(void* shm);

	//获取共享内存对象shmid的大小
	extern int getsize_sharedmemory(int shmid);

	//删除共享内存对象
	extern int del_sharedmemory(int shmid);
#endif	/* SHAREDMEMORY_H */  

#endif
/************** Begin of sharedmemory.h *******************************************/