#include <errno.h>
#include <limits.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <utmp.h>

/* Write the given entry into utmp and wtmp.  */
void login (const struct utmp *entry)
{
    struct utmp copy = *entry;

    utmpname(_PATH_UTMP);
    setutent();
#if _HAVE_UT_TYPE - 0 
    copy.ut_type = USER_PROCESS;
#endif  
#if _HAVE_UT_PID - 0
    copy.ut_pid = getpid();
#endif
    strncpy (copy.ut_line, entry->ut_line, UT_LINESIZE);
    pututline(entry);
    endutent();
}