[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    POSIX_OPENPT(3) manual page 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 nonnegative file descriptor which is the lowest numbered unused 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

Multithreading (see pthreads(7) )

The posix_openpt() function is thread-safe.

Conforming to

posix_openpt() is part of the UNIX 98 pseudoterminal support (see pts(4) ). This function is specified in POSIX.1-2001.

Notes

The posix_openpt() function is a recent invention in POSIX. Some UNIX implementations that support System V (aka UNIX 98) pseudoterminals don’t have this function, but it is easy to implement:
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 3.78 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 http://www.kernel.org/doc/man-pages/.


Table of Contents