utempter man page
utempter_add_record, utempter_remove_added_record, utempter_remove_record, utempter_set_helper — utempter interface
utempter_add_record(int fd, const char *host);
utempter_set_helper(const char *pathname);
utempter_add_record() function adds a login record to the database for the TTY belonging to the pseudo-terminal master file descriptor fd, using the username corresponding with the real user ID of the calling process and the optional hostname host. This function spawns a privileged process to perform the actual logging.
utempter_remove_record() function marks the login session as being closed for the TTY belonging to the pseudo-terminal master file descriptor fd. This function spawns a privileged process to perform the actual logging.
utempter_remove_added_record() function has the same properties as the previously mentioned function, except that it uses an internally cached value of the file descriptor passed to the login functions.
utempter_set_helper() function changes default helper path to the specified value. The pointer passed to this function must remain valid all the time while utempter interface is in use.
On error, zero is returned. On success, a non-zero value is returned.
During execution of the privileged process spawned by these functions, SIGCHLD signal handler will be temporarily set to the default action.
pututline(3), sigaction(3), updwtmp(3).
These functions appeared in ALT Linux Sisyphus in October 2001.