PW_LOCK(3)

NAME
pw_lock, pw_mkdb, pw_abort - passwd file update functions

SYNOPSIS
#include <util.h>
int
pw_lock(int retries);
int
pw_mkdb();
void
pw_abort();

DESCRIPTION
The pw_lock(), pw_mkdb(), and pw_abort() functions allow a program to update the system passwd database.

The pw_lock() function attempts to lock the passwd database by creating the file /etc/ptmp, and returns the file descriptor of that file. If retries is greater than zero, pw_lock() will try multiple times to open /etc/ptmp, waiting one second between tries. In addition to being a lock file, /etc/ptmp will also hold the contents of the new passwd file.

The pw_mkdb() function updates the passwd file from the contents of /etc/ptmp. You should finish writing to and close the file descriptor returned by pw_lock() before calling pw_mkdb(). If pw_mkdb() fails and you do not wish to retry, you should make sure to call pw_abort() to clean up the lock file.

The pw_abort() function aborts a passwd file update by deleting /etc/ptmp. The passwd database remains unchanged.

RETURN VALUES
The pw_lock() and pw_mkdb() functions return -1 if they are unable to complete properly.

FILES
/etc/master.passwd
/etc/ptmp

SEE ALSO
pw_init(3)