---
name: "updwtmp"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/updwtmp"
---

# updwtmp(3)

append an entry to the wtmp file

## NAME

updwtmp, logwtmp - append an entry to the wtmp file

## LIBRARY

System utilities library (*libutil*, *-lutil*)

## SYNOPSIS

```
#include <utmp.h>
```

**void updwtmp(const char \****wtmp\_path***, const struct utmp \****ut***);** **void logwtmp(const char \****line***, const char \****user***, const char \****host***);**

## DESCRIPTION

**updwtmp**() appends the utmp structure *ut* to the wtmp file.

**logwtmp**() constructs a utmp structure using *line*, *user*, *host*, current time, and current process ID. Then it calls **updwtmp**() to append the structure to the wtmp file.

## FILES

- */var/log/wtmp*

  database of past user logins

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **updwtmp**(), **logwtmp**() | Thread safety | MT-Unsafe sig:ALRM timer |

## VERSIONS

For consistency with the other "utmpx" functions (see [**getutxent**(3)](/getutxent/3.md)), glibc provides (since glibc 2.1):

```
#define _GNU_SOURCE          /* See feature_test_macros(7) */
#include <utmpx.h>
void updwtmpx (const char *wtmpx_path, const struct utmpx *utx);
```

This function performs the same task as **updwtmp**(), but differs in that it takes a *utmpx* structure as its last argument.

## STANDARDS

None.

## HISTORY

Solaris, NetBSD.

## SEE ALSO

[**getutxent**(3)](/getutxent/3.md), [**wtmp**(5)](/wtmp/5.md)
