+.I Setpassent
+accomplishes two purposes.
+First, it causes
+.I getpwent
+to ``rewind'' to the beginning of the database.
+Additionally, if
+.I stayopen
+is non-zero, file descriptors are left open, significantly speeding
+up subsequent accesses for all of the routines.
+(This latter functionality is unnecessary for
+.I getpwent
+as it doesn't close its file descriptors by default.)
+.PP
+It is dangerous for long-running programs to keep the file descriptors
+open the database will become out of date if it is updated while the
+program is running.
+.PP
+.I Setpwent
+is identical to
+.I setpassent
+with an argument of zero.
+.PP
+.I Endpwent
+closes any open files.
+.PP
+These routines have been written to ``shadow'' the password file, e.g.
+allow only certain programs to have access to the encrypted password.
+If the process which calls them has an effective uid of 0, the encrypted
+password will be returned, otherwise, the password field of the retuned
+structure will point to the string ``*''.