mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-15 01:10:52 +08:00
52 lines
1.2 KiB
C
52 lines
1.2 KiB
C
#ifndef __GID_OPER_INCLUDE_H__
|
||
#define __GID_OPER_INCLUDE_H__
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include "lib_acl.h"
|
||
|
||
#define GID_OK 200 /* 正常 */
|
||
#define GID_ERR_SID 500 /* 会话 ID 号不对 */
|
||
#define GID_ERR_OVERRIDE 501 /* 达到最大分配值 */
|
||
#define GID_ERR_SAVE 502 /* 存储至磁盘时出错 */
|
||
|
||
/**
|
||
* 根据错误号获得字符串描述
|
||
* @param errnum {int} 错误号
|
||
* @return {const char*} 错误描述
|
||
*/
|
||
const char *gid_serror(int errnum);
|
||
|
||
/**
|
||
* 获取下一个GID号
|
||
* @param path {const char*} 文件存储路径
|
||
* @param tag {const char*} ID标识号
|
||
* @param step {unsigned int} 每次的步进值
|
||
* @param errnum {int*} 若非空,则记录出错原因
|
||
* @return {acl_int64}, 如果返回值 < 0,则表示分配失败,
|
||
* 出错原因参考 errnum 的返回值
|
||
*/
|
||
acl_int64 gid_next(const char *path, const char *tag,
|
||
unsigned int step, int *errnum);
|
||
|
||
/**
|
||
* 初始化,程序启动后应调用此函数初始化内部库
|
||
* @param fh_limit {int} 缓存的文件句柄的最大个数
|
||
* @param sync_gid {int} 每产生一个新的 gid 后是否同时同步至磁盘
|
||
* @param debug_section {int} 调用用的标签值
|
||
*/
|
||
void gid_init(int fh_limit, int sync_gid, int debug_section);
|
||
|
||
/**
|
||
* 程序退出前必须调用此函数,以使内存中数据刷新至磁盘
|
||
*/
|
||
void gid_finish(void);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif
|