void login(const struct utmp *ut);
int logout(const char *ut_line);
The function login() takes the supplied struct utmp, ut, and writes it to both the utmp and the wtmp file.
The logout() function searches the utmp file for an entry matching the ut_line argument. If a record is found, it is updated by zeroing out the ut_name and ut_host fields, updating the ut_tv timestamp field and setting ut_type (if there is such a field) to DEAD_PROCESS.
In the above table, utent in race:utent signifies that if any of the functions setutent(3), getutent(3), or endutent(3) are used in parallel in different threads of a program, then data races could occur. login(3) and logout(3) calls those functions, so we use race:utent to remind users.