sharedmemory.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /************** Begin of sharedmemory.h *******************************************/
  2. #if defined(linux) && defined(HAVE_SHM)
  3. /***************************************************************************
  4. |sharedmemory.h| - sharedmemory类的头文件-声明sharedmemory类
  5. -------------------
  6. begin : |03-6-20|
  7. modify : |03-6-20|
  8. copyright : (C) |YEAR| by |wenhm(温辉敏)|
  9. email : |EMAIL|
  10. ***************************************************************************/
  11. #ifndef SHAREDMEMORY_H
  12. #define SHAREDMEMORY_H
  13. #include <sys/types.h>
  14. //创建或关键字为Key的含有大小为size的共享内存对象,并将共享内存对象id放于shmid中返回。
  15. //若共享内存对象已存在则取得该对象
  16. extern int create_sharedmemory(key_t key, int size);
  17. //创建关键字Key为IPC_PRIVATE(即关键字由系统选定)的含有大小为size的共享内存对象,并将共享内存对象id放于shmid中返回。
  18. //因使用IPC_PRIVATE创建的共享内存的key都一样,所以key就不要了。
  19. extern int create_sharedmemory_private(int size);
  20. //将共享内存attach到进程自己得空间内,函数返回指向映射内存的指针。
  21. extern void *attach_sharedmemory(int shmid );
  22. //将共享内存disattach,唯一的参数是共享内存映射的指针
  23. //返回值: -1 on error: errno = EINVAL (Invalid attach address passed)
  24. extern int disattach_sharedmemory(void* shm);
  25. //获取共享内存对象shmid的大小
  26. extern int getsize_sharedmemory(int shmid);
  27. //删除共享内存对象
  28. extern int del_sharedmemory(int shmid);
  29. #endif /* SHAREDMEMORY_H */
  30. #endif
  31. /************** Begin of sharedmemory.h *******************************************/