Manual Page Result
0
Command: posix_openpt | Section: 3 | Source: NetBSD | File: posix_openpt.3
POSIX_OPENPT(3) FreeBSD Library Functions Manual POSIX_OPENPT(3)
NAME
posix_openpt - open a pseudo-terminal device
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdlib.h>
#include <fcntl.h>
int
posix_openpt(int oflag);
DESCRIPTION
The posix_openpt() function searches for an unused master pseudo-terminal
device, opens it, and returns a file descriptor associated with the now
used pseudo-terminal device. The oflag argument has the same meaning as
in the open(2) call.
RETURN VALUES
If successful, posix_openpt() returns a non-negative integer, which
corresponds to a file descriptor pointing to the master pseudo-terminal
device. Otherwise, a value of -1 is returned and errno is set to
indicate the error.
Note that unlike implementations on some other operating systems,
posix_openpt() does not return EINVAL if a flag supplied in oflag would
be deemed invalid, instead it is simply ignored. This means it is not
possible to dynamically test which open(2) flags are possible to set, and
apply a fallback if EINVAL is received. However, this is unlikely to be
a concern in practice, as flags such as O_NONBLOCK and O_CLOEXEC are
supported.
SEE ALSO
ioctl(2), open(2), grantpt(3), ptsname(3), unlockpt(3)
RATIONALE
The standards committee did not want to directly expose the cloning
device, thus decided to wrap the functionality in this function. The
equivalent code would be:
int
posix_openpt(int oflag) {
return open("/dev/ptmx", oflag);
}
STANDARDS
The posix_openpt() function conforms to IEEE Std 1003.1-2001 ("POSIX.1").
HISTORY
This function first appeared in NetBSD 3. Support for non-standard flags
appeared in NetBSD 10.
FreeBSD 14.1-RELEASE-p8 November 15, 2022 FreeBSD 14.1-RELEASE-p8