if (info == NULL) { info = __grpalloc(); if (info == NULL) return NULL; }  stream = __grpopen(); if (stream == NULL) return NULL;  while ((g = __grpread(stream, info)) != NULL) if (!strcmp(g->gr_name, name)) break;  (void) fclose(stream); return g;
return __grpscan (&info, &match);
DEFUN(getgrnam, (name), register CONST char *name){  static PTR info = NULL;  register FILE *stream;  register struct group *g;  if (info == NULL)    {      info = __grpalloc();      if (info == NULL)	return NULL;    }  stream = __grpopen();  if (stream == NULL)    return NULL;  while ((g = __grpread(stream, info)) != NULL)    if (!strcmp(g->gr_name, name))      break;  (void) fclose(stream);  return g;}