---
name: "utempter"
section: "3"
platform: "linux"
package: "libutempter"
version: "1.2.3-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/utempter"
---

# utempter(3)

utempter interface

## NAME

**utempter\_add\_record**, **utempter\_remove\_added\_record**, **utempter\_remove\_record**, **utempter\_set\_helper** – utempter interface

## SYNOPSIS

**#include \<utempter.h\>**

*int*\

**utempter\_add\_record**(*int fd*, *const char \*host*);

*int*\

**utempter\_remove\_added\_record**(*void*);

*int*\

**utempter\_remove\_record**(*int fd*);

*void*\

**utempter\_set\_helper**(*const char \*pathname*);

## DESCRIPTION

**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.

## RETURN VALUES

On error, zero is returned. On success, a non-zero value is returned.

## NOTES

During execution of the privileged process spawned by these functions, SIGCHLD signal handler will be temporarily set to the default action.

## SEE ALSO

[pututline(3)](/pututline/3.md), sigaction(3), [updwtmp(3)](/updwtmp/3.md).

## HISTORY

These functions appeared in ALT Linux Sisyphus in October 2001.
