Loading...
--- Libc/Libc-825.26/stdlib/grantpt.3
+++ Libc/Libc-1669.0.4/stdlib/grantpt.3
@@ -38,6 +38,7 @@
.Nm grantpt ,
.Nm posix_openpt ,
.Nm ptsname ,
+.Nm ptsname_r ,
.Nm unlockpt
.Nd pseudo-terminal access functions
.Sh SYNOPSIS
@@ -50,6 +51,12 @@
.Fo ptsname
.Fa "int fildes"
.Fc
+.Ft "int"
+.Fo ptsname_r
+.Fa "int fildes"
+.Fa "char *buffer"
+.Fa "size_t buflen"
+.Fc
.Ft int
.Fo unlockpt
.Fa "int fildes"
@@ -64,51 +71,58 @@
The
.Fn grantpt ,
.Fn ptsname ,
+.Fn ptsname_r ,
.Fn unlockpt ,
and
.Fn posix_openpt
functions allow access to pseudo-terminal devices.
-The first three functions accept a file descriptor
-that references the master half of a pseudo-terminal pair.
+The first four functions accept a file descriptor
+that references the primary half of a pseudo-terminal pair.
This file descriptor is created with
.Fn posix_openpt .
.Pp
The
.Fn grantpt
function is used to establish ownership and permissions
-of the slave device counterpart to the master device
+of the replica device counterpart to the primary device
specified with
.Fa fildes .
-The slave device's ownership is set to the real user ID
+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 slave device is also set to the group
+The group owner of the replica device is also set to the group
.Dq Li tty
if it exists on the system; otherwise, it
is left untouched.
.Pp
The
.Fn ptsname
-function returns the full pathname of the slave device
-counterpart to the master device specified with
+and
+.Fn ptsname_r
+functions return the full pathname of the replica device
+counterpart to the primary device specified with
.Fa fildes .
This value can be used
-to subsequently open the appropriate slave after
+to subsequently open the appropriate replica after
.Fn posix_openpt
and
.Fn grantpt
-have been called.
+have been called. The
+.Fn ptsname
+function is not guaranteed to be reentrant or thread safe. The
+.Fn ptsname_r
+function takes a buffer and length as arguments to avoid this problem.
.Pp
The
.Fn unlockpt
-function unlocks the slave pseudo-terminal device associated
-with the master device to which
+function unlocks the replica pseudo-terminal device associated
+with the primary device to which
.Fa fildes
refers.
.Pp
The
.Fn posix_openpt
-function opens the first available master pseudo-terminal
+function opens the first available primary pseudo-terminal
device and returns a descriptor to it.
The
.Fa oflag
@@ -127,16 +141,22 @@
The
.Fn ptsname
function returns a pointer to the name
-of the slave device on success; otherwise a
+of the replica device on success; otherwise a
.Dv NULL
pointer is returned and the global variable
.Va errno
is set to indicate the error.
.Pp
The
+.Fn ptsname_r
+function returns 0 if successful. On failure, it returns -1 and the global variable
+.Va errno
+is set to indicate the error.
+.Pp
+The
.Fn posix_openpt
function returns a file descriptor to the first
-available master pseudo-terminal device on success;
+available primary pseudo-terminal device on success;
otherwise \-1 is returned and the global variable
.Va errno
is set to indicate the error.
@@ -144,6 +164,7 @@
The
.Fn grantpt ,
.Fn ptsname ,
+.Fn ptsname_r ,
and
.Fn unlockpt
functions may fail and set
@@ -152,7 +173,25 @@
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa fildes
-is not a master pseudo-terminal device.
+is not a primary pseudo-terminal device.
+.El
+.Pp
+In addition, the
+.Fn ptsname_r
+function may set
+.Va errno
+to:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The
+.Va buffer
+argument is NULL.
+.El
+.Bl -tag -width Er
+.It Bq Er ERANGE
+The
+.Va bufsize
+argument is smaller than the length of the string to be returned.
.El
.Pp
In addition, the
@@ -162,7 +201,7 @@
to:
.Bl -tag -width Er
.It Bq Er EACCES
-The slave pseudo-terminal device could not be accessed.
+The replica pseudo-terminal device could not be accessed.
.El
.Pp
The
@@ -181,6 +220,7 @@
The
.Fn grantpt ,
.Fn ptsname ,
+.Fn ptsname_r ,
and
.Fn unlockpt
functions may also fail and set