1.\" $NetBSD: getlastlogx.3,v 1.1 2003/08/26 17:37:51 wiz Exp $ 2.\" 3.\" Copyright (c) 2003 The NetBSD Foundation, Inc. 4.\" All rights reserved. 5.\" 6.\" This code is derived from software contributed to The NetBSD Foundation 7.\" by Thomas Klausner. 8.\" 9.\" Redistribution and use in source and binary forms, with or without 10.\" modification, are permitted provided that the following conditions 11.\" are met: 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28.\" POSSIBILITY OF SUCH DAMAGE. 29.\" 30.Dd September 10, 2019 31.Dt GETLASTLOGX 3 32.Os 33.Sh NAME 34.Nm getlastlogx , 35.Nm updlastlogx , 36.Nm updwtmpx , 37.Nm _updwtmpx , 38.Nm utmpxname 39.Nd user accounting database functions 40.Sh LIBRARY 41.Lb libc 42.Sh SYNOPSIS 43.In utmpx.h 44.Ft struct lastlogx * 45.Fn getlastlogx "const char *fname" "uid_t uid" "struct lastlogx *ll" 46.Ft int 47.Fn updlastlogx "const char *fname" "uid_t uid" "struct lastlogx *ll" 48.Ft void 49.Fn updwtmpx "const char *file" "const struct utmpx *utx" 50.Ft int 51.Fn _updwtmpx "const char *file" "const struct utmpx *utx" 52.Ft int 53.Fn utmpxname "const char *fname" 54.Sh DESCRIPTION 55The 56.Fn getlastlogx 57function looks up the entry for the user with user id 58.Fa uid 59in the 60.Xr lastlogx 5 61file given by 62.Fa fname 63and returns it in 64.Fa \&ll . 65If the provided 66.Fa \&ll 67is 68.Dv NULL , 69the necessary space will be allocated by 70.Fn getlastlogx 71and should be 72.Fn free Ns d 73by the caller. 74.Pp 75The 76.Fn updlastlogx 77function tries to update the information for the user with the user id 78.Fa uid 79in the 80.Xr lastlogx 5 81file given by 82.Fa fname 83with the data supplied in 84.Fa \&ll . 85A 86.Ft struct lastlogx 87is defined like this: 88.Bd -literal 89struct lastlogx { 90 struct timeval ll_tv; /* time entry was created */ 91 char ll_line[_UTX_LINESIZE]; /* tty name */ 92 char ll_host[_UTX_HOSTSIZE]; /* host name */ 93 struct sockaddr_storage ll_ss; /* address where entry was made from */ 94}; 95.Ed 96All the fields should be filled out by the caller. 97.Pp 98The 99.Fn updwtmpx 100and 101.Fn _updwtmpx 102functions update the 103.Xr wtmpx 5 104file 105.Fa file 106with the 107.Xr utmpx 5 108entry 109.Fa utx . 110.Pp 111The 112.Fn utmpxname 113function sets the default 114.Xr utmpx 5 115database file name to 116.Fa fname . 117.Sh RETURN VALUES 118.Fn getlastlogx 119returns the found entry on success, or 120.Dv NULL 121if it could not open the database, could not find an entry matching 122.Fa uid 123in there, or could not allocate the necessary space (in case 124.Fa \&ll 125was 126.Dv NULL ) . 127.Pp 128.Fn utmpxname 129returns 1 on success, or 0 if the supplied file name was too long or 130did not end with 131.Sq x . 132.Pp 133.Fn updlastlogx 134and 135.Fn _updwtmpx 136return 0 on success, or \-1 in case the database or file respectively 137could not be opened or the data not written into it. 138.Sh SEE ALSO 139.Xr endutxent 3 , 140.Xr loginx 3 , 141.Xr utmpx 5 142.Sh HISTORY 143The functions 144.Fn updwtmpx , 145.Fn _updwtmpx 146and 147.Fn utmpxname 148first appeared in 149.Tn Solaris . 150.Nm getlastlogx 151and 152.Nm updlastlogx 153first appeared in 154.Nx 2.0 . 155