-.\" Hey Emacs! This file is -*- nroff -*- source.
+.\" %%%LICENSE_START(PUBLIC_DOMAIN)
.\" This page is in the public domain. - aeb
+.\" %%%LICENSE_END
.\"
-.TH GRANTPT 3 "2003-01-30" "PTY Control" "Linux Programmer's Manual"
+.TH GRANTPT 3 2017-09-15 "GNU" "Linux Programmer's Manual"
.SH NAME
-grantpt \- grant access to the slave pseudotty
+grantpt \- grant access to the slave pseudoterminal
.SH SYNOPSIS
-.nf
-.B #define _XOPEN_SOURCE
-.br
.B #include <stdlib.h>
-.sp
+.PP
.BI "int grantpt(int " fd ");"
-.fi
+.PP
+.in -4n
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.in
+.PP
+.ad l
+.BR grantpt ():
+.br
+.RS 4
+Since glibc 2.24:
+ _XOPEN_SOURCE\ >=\ 500 ||
+ (_XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED)
+.br
+Glibc 2.23 and earlier:
+ _XOPEN_SOURCE
+.RE
+.ad
.SH DESCRIPTION
The
.BR grantpt ()
-function changes the mode and owner of the slave pseudo-terminal device
-(pty) corresponding to the master pty referred to by
+function changes the mode and owner of the slave pseudoterminal device
+corresponding to the master pseudoterminal referred to by
.IR fd .
The user ID of the slave is set to the real UID of the calling process.
-The group ID is set to an unspecified value (e.g. tty).
+The group ID is set to an unspecified value (e.g.,
+.IR tty ).
The mode of the slave is set to 0620 (crw\-\-w\-\-\-\-).
.PP
The behavior of
.BR grantpt ()
-is unspecified if a signal handler is installed to catch SIGCHLD signals.
-.SH "RETURN VALUE"
-When successful,
+is unspecified if a signal handler is installed to catch
+.B SIGCHLD
+signals.
+.SH RETURN VALUE
+When successful,
.BR grantpt ()
-returns 0. Otherwise, it returns \-1 and sets
+returns 0.
+Otherwise, it returns \-1 and sets
.I errno
appropriately.
.SH ERRORS
.TP
.B EACCES
-The corresponding slave pty could not be accessed.
+The corresponding slave pseudoterminal could not be accessed.
.TP
.B EBADF
The
.B EINVAL
The
.I fd
-argument is valid but not associated with a master pty.
-.SH "CONFORMING TO"
-POSIX 1003.1-2001
+argument is valid but not associated with a master pseudoterminal.
+.SH VERSIONS
+.BR grantpt ()
+is provided in glibc since version 2.1.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR grantpt ()
+T} Thread safety MT-Safe locale
+.TE
+.sp 1
+.SH CONFORMING TO
+POSIX.1-2001, POSIX.1-2008.
.SH NOTES
-This is part of the Unix98 pty support, see
+This is part of the UNIX 98 pseudoterminal support, see
.BR pts (4).
-Many systems implement this function via a setuid helper binary
-called "pt_chown". With Linux devpts no such helper binary is required.
-.SH "SEE ALSO"
+.PP
+Many systems implement this function via a set-user-ID helper binary
+called "pt_chown".
+On Linux systems with a devpts filesystem (present since Linux 2.2),
+the kernel normally sets the correct ownership and permissions
+for the pseudoterminal slave when the master is opened
+.RB ( posix_openpt (3)),
+so that nothing must be done by
+.BR grantpt ().
+Thus, no such helper binary is required
+(and indeed it is configured to be absent during the
+glibc build that is typical on many systems).
+.SH SEE ALSO
.BR open (2),
-.BR getpt (3),
+.BR posix_openpt (3),
.BR ptsname (3),
.BR unlockpt (3),
-.BR pts (4)
+.BR pts (4),
+.BR pty (7)