wangzhengquan
2021-02-20 e0aea3742aed09a0a9ed384ccd7db203b6efc650
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
 * @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 分配一个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