/** * @file * * @brief 负责共享内存的创建与销毁 * */ #ifndef __SHM_MM_WRAPPER_H__ #define __SHM_MM_WRAPPER_H__ #ifdef __cplusplus extern "C" { #endif /** * @brief 创建并初始化共享内存 * @param size 共享内存大小, 单位M * @details 在进入main方法的时候执行该方法,每个进程只需要调用一次 */ void shm_mm_wrapper_init(int size); /** * @brief 销毁共享内存 * @details 整个进程退出时需要执行这个方法,该方法首先会检查是否还有其他进程在使用该共享内存,如果还有其他进程在使用就只是detach,如果没有其他进程在使用则销毁整块内存。 */ void shm_mm_wrapper_destroy(); /** * @brief 回收标记为删除的队列。作为一个单独的进程运行。 * @return 只有出错的时候才会返回错误 */ int shm_mm_wrapper_start_resycle() ; /** * @brief 分配一个key给申请者 * @return key值 */ int shm_mm_wrapper_alloc_key(); /** * @brief 删除包含在keys内的queue * @return 删除的个数 */ int shm_mm_wrapper_remove_keys(int keys[], int length); /** * @brief 删除不在keys内的queue * @return 删除的个数 */ int shm_mm_wrapper_remove_keys_exclude(int keys[], int length); #ifdef __cplusplus } #endif #endif