posix_openpt(3)
- NetBSD Manual Pages
POSIX_OPENPT(3) NetBSD 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 cor-
responds to a file descriptor pointing to the master pseudo-terminal
device. Otherwise, a value of -1 is returned and errno is set to indi-
cate 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 sup-
ported.
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.
NetBSD 10.99 November 15, 2022 NetBSD 10.99
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.