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

# getpt(3)

open a new pseudoterminal master

## NAME

getpt - open a new pseudoterminal master

## LIBRARY

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

## SYNOPSIS

```
#define _GNU_SOURCE             /* See feature_test_macros(7) */
#include <stdlib.h>
```

**int getpt(void);**

## DESCRIPTION

**getpt**() opens a new pseudoterminal device and returns a file descriptor that refers to that device. It is equivalent to opening the pseudoterminal multiplexer device

```
open("/dev/ptmx", O_RDWR);
```

on Linux systems, though the pseudoterminal multiplexer device is located elsewhere on some systems that use the GNU C library.

## RETURN VALUE

**getpt**() returns an open file descriptor upon successful completion. Otherwise, it returns -1 and sets *errno* to indicate the error.

## ERRORS

**getpt**() can fail with various errors described in [**open**(2)](/open/2.md).

## ATTRIBUTES

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

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **getpt**() | Thread safety | MT-Safe |

## VERSIONS

Use [**posix\_openpt**(3)](/posix_openpt/3.md) instead.

## STANDARDS

GNU.

## HISTORY

glibc 2.1.

## SEE ALSO

[**grantpt**(3)](/grantpt/3.md), [**posix\_openpt**(3)](/posix_openpt/3.md), [**ptsname**(3)](/ptsname/3.md), [**unlockpt**(3)](/unlockpt/3.md), [**ptmx**(4)](/ptmx/4.md), [**pty**(7)](/pty/7.md)
