http://baike.baidu.com/link?url=JNyoNvukL-LP7ayYlNNWLv2gPOzn-bjiwuX1CE_QwUTyrRGCWu4NhDW-JznHQoG4aIfwaA2iohylA5iqVG2PIq
getgrent
头文件
#include<grp.h>
#include <sys/types.h>
函数原型
struct group *getgrent(void);
函数说明
getgrent()用来从组文件(/etc/group)中读取一项组数据,该数据以group结构返回。第一次调用时会取得第一项组数据,之后每调用一次就会返回下一项数据,直到已无任何数据时返回NULL。
struct group{
char *gr_name; /*组名称*/
char *gr_passwd; /* 组密码*/
gid_t gr_gid; /*组识别码*/
char **gr_mem; /*组成员账号*/
}
返回group结构数据,如果返回NULL则表示已无数据,或有错误发生。getgrent()在第一次调用时会打开组文件,读取数据完毕后可使用endgrent()来关闭该组文件。ENOMEM 内存不足,无法配置group结构。
范例
#include<grp.h>
#include<sys/types.h>
main()
{
struct group *data;
int i;
while((data= getgrent())!=0){
i=0;
printf(“%s:%s:%d:”,data->gr_name,data->gr_passwd,data->gr_gid);
while(data->gr_mem[i])printf(“%s,”,data->gr_mem[i++]);
printf(“\n”);
}
endgrent();
}
时间: 2024-10-14 19:37:03