13
该数据类型是位掩码,用来选择系统中的多个用户组。目前系统最大支持 256 个用户组。
为方便对位掩码数据结构的操作,提供了一系列二进制位掩码操作函数。
四类系统定义的组都使用以下接口获取当前存在的有效组信息,以便引用它们。
struct rule_comm {
int id; /* 组 ID */
char name[32]; /* 组名 */
};
int dump_group_all(int mid, struct rule_comm *res)
参数:
mid[in]:查询的组类型,有四类:
GRP_USER:用户组
GRP_TIME:时间组
GRP_URL: URL 网址组
GRP_DNS: DNS 域名组
res[out]:输出查询结果,调用者需要事先分配足够的内存,内存大小取决于
被查询组类型在系统中支持的最大数量,再乘以 sizeof(struct rule_comm)。
返回值:
>0:指示 res 指向的数组中有效信息数目;
=0:表示该组类型没有存在的组;
<0:mid 参数错误
举例:
读取当前的用户组
struct rule_comm grp[UGRP_MX];
int nr;
int i;
nr = dump_group_all(GRP_USER, grp);
/*返回 nr 个可用用户组*/
for(i = 0;i <nr;i++)
printf(“group id is %d, name is %sn”, grp[i].id,grp[i].name);
用户组、时间组、URL 网址组、DNS 域名组使用相同的删除接口:
int unregister_group(int mid,intid)
参数:
mid:为被删除组的类型,有四类:
GRP_USER:用户组
GRP_TIME:时间组
GRP_URL: URL 网址组