C语言fgetgrent()函数:读取组格式函数
相关函数:fgetpwent
头文件:#include <grp.h> #include <stdio.h> #include <sys/types.h>
定义函数:struct group * getgrent(FILE * stream);
函数说明:fgetgrent()会从参数stream 指定的文件读取一行数据, 然后以group 结构将该数据返回. 参数stream 所指定的文件必须和、etc/group 相同的格式. group 结构定义请参考getgrent().
返回值:返回 group 结构数据, 如果返回NULL 则表示已无数据, 或有错误发生.
范例
#include <grp.h>
#include <sys/types.h>
#include <stdio.h>
main()
{
struct group *data;
FILE *stream;
int i;
stream = fopen("/etc/group", "r");
while((data = fgetgrent(stream)) != 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");
}
fclose(stream);
}
执行:
root:x:0:root,
bin:x:1:root, bin, daemon
daemon:x:2:root, bin, daemon
sys:x:3:root, bin, adm
adm:x:4:root, adm, daemon
tty:x:5
disk:x:6:root
lp:x:7:daemon, lp
mem:x:8
kmem:x:9
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15
games:x:20
gopher:x:30
dip:x:40:
ftp:x:50
nobody:x:99:
头文件:#include <grp.h> #include <stdio.h> #include <sys/types.h>
定义函数:struct group * getgrent(FILE * stream);
函数说明:fgetgrent()会从参数stream 指定的文件读取一行数据, 然后以group 结构将该数据返回. 参数stream 所指定的文件必须和、etc/group 相同的格式. group 结构定义请参考getgrent().
返回值:返回 group 结构数据, 如果返回NULL 则表示已无数据, 或有错误发生.
范例
#include <grp.h>
#include <sys/types.h>
#include <stdio.h>
main()
{
struct group *data;
FILE *stream;
int i;
stream = fopen("/etc/group", "r");
while((data = fgetgrent(stream)) != 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");
}
fclose(stream);
}
执行:
root:x:0:root,
bin:x:1:root, bin, daemon
daemon:x:2:root, bin, daemon
sys:x:3:root, bin, adm
adm:x:4:root, adm, daemon
tty:x:5
disk:x:6:root
lp:x:7:daemon, lp
mem:x:8
kmem:x:9
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15
games:x:20
gopher:x:30
dip:x:40:
ftp:x:50
nobody:x:99: