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

# getttyent(3)

get ttys file entry

## NAME

getttyent, getttynam, setttyent, endttyent - get ttys file entry

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <ttyent.h>
```

**struct ttyent \*getttyent(void);** **struct ttyent \*getttynam(const char \****name***);**

**int setttyent(void);** **int endttyent(void);**

## DESCRIPTION

These functions provide an interface to the file **\_PATH\_TTYS** (e.g., */etc/ttys*).

The function **setttyent**() opens the file or rewinds it if already open.

The function **endttyent**() closes the file.

The function **getttynam**() searches for a given terminal name in the file. It returns a pointer to a *ttyent* structure (description below).

The function **getttyent**() opens the file **\_PATH\_TTYS** (if necessary) and returns the first entry. If the file is already open, the next entry. The *ttyent* structure has the form:

```
struct ttyent {
    char *ty_name;     /* terminal device name */
    char *ty_getty;    /* command to execute, usually getty */
    char *ty_type;     /* terminal type for termcap */
    int   ty_status;   /* status flags */
    char *ty_window;   /* command to start up window manager */
    char *ty_comment;  /* comment field */
};
```

*ty\_status* can be:

```
#define TTY_ON     0x01  /* enable logins (start ty_getty program) */
#define TTY_SECURE 0x02  /* allow UID 0 to login */
```

## ATTRIBUTES

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

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **getttyent**(), **setttyent**(), **endttyent**(), **getttynam**() | Thread safety | MT-Unsafe race:ttyent |

## STANDARDS

BSD.

## NOTES

Under Linux, the file */etc/ttys*, and the functions described above, are not used.

## SEE ALSO

[**ttyname**(3)](/ttyname/3.md), [**ttyslot**(3)](/ttyslot/3.md)
