Пример #1
0
struct group *
getgrent()
{
	register char *p, **q;

	if( !grf && !(grf = fopen( GROUP, "r" )) )
		return(NULL);
	if( !(p = fgets( line, BUFSIZ, grf )) )
		return(NULL);
	group.gr_name = p;
	p = grskip(p,CL); /* passwd */
	group.gr_gid = atoi(p = grskip(p,CL));
	group.gr_mem = gr_mem;
	p = grskip(p,CL);
	grskip(p,NL);
	q = gr_mem;
	while( *p ){
		*q++ = p;
		p = grskip(p,CM);
	}
	*q = NULL;
	return( &group );
}
Пример #2
0
struct group * getgrent(void)
{
    char *p, **q;

    if (!grf && !(grf = fopen(_PATH_GROUP, "r")))
        return NULL;
    if (!(p = fgets(line, sizeof(line) - 1, grf)))
        return NULL;

    group.gr_name = p;
    group.gr_gid = atoi(p = grskip(p, ':'));
    group.gr_mem = gr_mem;
    p = grskip(p, ':');
    grskip(p, '\n');
    q = gr_mem;
    while (*p) {
        if (q < &gr_mem[MAXGRP - 1])
            *q++ = p;
        p = grskip(p, ',');
    }
    *q = NULL;
    return &group;
}