Manpages - posix_openpt.3

Table of Contents

NAME

posix_openpt - open a pseudoterminal device

SYNOPSIS

  #include <stdlib.h>
  #include <fcntl.h>

  int posix_openpt(int flags);

Feature Test Macro Requirements for glibc (see *feature_test_macros*(7)):

*posix_openpt*():

      _XOPEN_SOURCE >= 600

DESCRIPTION

The *posix_openpt*() function opens an unused pseudoterminal master device, returning a file descriptor that can be used to refer to that device.

The flags argument is a bit mask that ORs together zero or more of the following flags:

O_RDWR
Open the device for both reading and writing. It is usual to specify this flag.
O_NOCTTY
Do not make this device the controlling terminal for the process.

RETURN VALUE

On success, *posix_openpt*() returns a file descriptor (a nonnegative integer) which is the lowest numbered unused file descriptor. On failure, -1 is returned, and errno is set to indicate the error.

ERRORS

See *open*(2).

VERSIONS

Glibc support for *posix_openpt*() has been provided since version 2.2.1.

ATTRIBUTES

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

Interface Attribute Value
*posix_openpt*() Thread safety MT-Safe

CONFORMING TO

POSIX.1-2001, POSIX.1-2008.

*posix_openpt*() is part of the UNIX 98 pseudoterminal support (see *pts*(4)).

NOTES

Some older UNIX implementations that support System V (aka UNIX 98) pseudoterminals don’t have this function, but it can be easily implemented by opening the pseudoterminal multiplexor device:

  int
  posix_openpt(int flags)
  {
      return open("/dev/ptmx", flags);
  }

Calling *posix_openpt*() creates a pathname for the corresponding pseudoterminal slave device. The pathname of the slave device can be obtained using *ptsname*(3). The slave device pathname exists only as long as the master device is open.

SEE ALSO

*open*(2), *getpt*(3), *grantpt*(3), *ptsname*(3), *unlockpt*(3), *pts*(4), *pty*(7)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 18:44