-.TH GETGRENT 3 ""
-.AT 3
-.SH NAME
-getgrent, getgrnam, getgrgid, setgroupent, setgrent,
-endgrent \- get group file entry
-.SH SYNOPSIS
-.nf
-.ft B
-#include <grp.h>
-
-struct group *getgrent(void);
-
-struct group *getgrnam(char *name);
-
-struct group *getgrgid(gid_t gid);
-
-setgrent(void);
-setgroupent(int stayopen);
-
-void endgrent(void);
-.ft R
-.fi
-.SH DESCRIPTION
-.I Getgrent,
-.I getgrgid
-and
-.I getgrnam
-each return a pointer to a structure containing the broken-out fields
-of a line in the group file. This structure is defined by the include
+.Dd
+.Dt GETGRENT 3
+.Os
+.Sh NAME
+.Nm getgrent ,
+.Nm getgrnam ,
+.Nm getgrgid ,
+.Nm setgroupent ,
+.\" .Nm setgrfile ,
+.Nm setgrent ,
+.Nm endgrent
+.Nd group database operations
+.Sh SYNOPSIS
+.Fd #include <grp.h>
+.Ft struct group *
+.Fn getgrent void
+.Ft struct group *
+.Fn getgrname "const char *name"
+.Ft struct group *
+.Fn getgrgid "gid_t gid"
+.Ft struct group *
+.Fn setgroupent "int stayopen"
+.\" .Ft void
+.\" .Fn setgrfile "const char *name"
+.Ft int
+.Fn setgrent void
+.Ft void
+.Fn endgrent void
+.Sh DESCRIPTION
+These functions operate on the group database file
+.Pa /etc/group
+which is described
+in
+.Xr group 5 .
+Each line of the database is defined by the structure
+.Ar group
+found in the include