NAME
grantpt
,
posix_openpt
, ptsname
,
ptsname_r
, unlockpt
—
pseudo-terminal access
functions
SYNOPSIS
#include
<stdlib.h>
int
grantpt
(int fildes);
char *
ptsname
(int fildes);
int
ptsname_r
(int fildes,
char *buffer, size_t
buflen);
int
unlockpt
(int fildes);
#include
<stdlib.h>
#include <fcntl.h>
int
posix_openpt
(int oflag);
DESCRIPTION
The
grantpt
(),
ptsname
(), ptsname_r
(),
unlockpt
(), and
posix_openpt
() functions allow access to
pseudo-terminal devices. The first four functions accept a file descriptor
that references the primary half of a pseudo-terminal pair. This file
descriptor is created with posix_openpt
().
The
grantpt
()
function is used to establish ownership and permissions of the replica
device counterpart to the primary device specified with
fildes. The replica device's ownership is set to the
real user ID of the calling process; its permissions are set to user
readable-writable and group writable. The group owner of the replica device
is also set to the group “tty
” if it
exists on the system; otherwise, it is left untouched.
The
ptsname
()
and
ptsname_r
()
functions return the full pathname of the replica device counterpart to the
primary device specified with fildes. This value can
be used to subsequently open the appropriate replica after
posix_openpt
() and grantpt
()
have been called. The ptsname
() function is not
guaranteed to be reentrant or thread safe. The
ptsname_r
() function takes a buffer and length as
arguments to avoid this problem.
The
unlockpt
()
function unlocks the replica pseudo-terminal device associated with the
primary device to which fildes refers.
The
posix_openpt
()
function opens the first available primary pseudo-terminal device and
returns a descriptor to it. The oflag argument
specifies the flags used for opening the device:
O_RDWR
- Open for reading and writing.
O_NOCTTY
- If set, do not allow the terminal to become the controlling terminal for the calling process.
RETURN VALUES
The grantpt
() and
unlockpt
() functions return the value 0 if
successful; otherwise the value -1 is returned and the global
variable errno is set to indicate the error.
The ptsname
() function returns a pointer
to the name of the replica device on success; otherwise a
NULL
pointer is returned and the global variable
errno is set to indicate the error.
The ptsname_r
() function returns 0 if
successful. On failure, it returns -1 and the global variable
errno is set to indicate the error.
The posix_openpt
() function returns a file
descriptor to the first available primary pseudo-terminal device on success;
otherwise -1 is returned and the global variable errno
is set to indicate the error.
ERRORS
The grantpt
(),
ptsname
(), ptsname_r
(), and
unlockpt
() functions may fail and set
errno to:
- [
EINVAL
] - fildes is not a primary pseudo-terminal device.
In addition, the ptsname_r
() function may
set errno to:
- [
EINVAL
] - The buffer argument is NULL.
- [
ERANGE
] - The bufsize argument is smaller than the length of the string to be returned.
In addition, the grantpt
() function may
set errno to:
- [
EACCES
] - The replica pseudo-terminal device could not be accessed.
The posix_openpt
() function may fail and
set errno to:
- [
EINVAL
] - oflag consists of an invalid mode bit.
- [
EAGAIN
] - The system has no available pseudo-terminal devices.
The grantpt
(),
ptsname
(), ptsname_r
(), and
unlockpt
() functions may also fail and set
errno for any of the errors specified for the
fstat(2)
system call.
The posix_openpt
() function may also fail
and set errno for any of the errors specified for the
open(2) system
call.
LEGACY SYNOPSIS
#include
<stdlib.h>
#include
<fcntl.h>
int
grantpt
(int
fildes);;
char *
ptsname
(int
fildes);;
int
unlockpt
(int
fildes);;
#include
<fcntl.h>
int
posix_openpt
(int
oflag);;
SEE ALSO
STANDARDS
The grantpt
(),
ptsname
(), unlockpt
(), and
posix_openpt
() functions conform to
IEEE Std 1003.1-2001 (“POSIX.1”).