.\"
.\" Added -lutil remark, 030718
.\"
-.TH OPENPTY 3 2015-04-19 "GNU" "Linux Programmer's Manual"
+.TH OPENPTY 3 2017-09-15 "GNU" "Linux Programmer's Manual"
.SH NAME
openpty, login_tty, forkpty \- terminal utility functions
.SH SYNOPSIS
.BI "pid_t forkpty(int *" amaster ", char *" name ,
.BI " const struct termios *" termp ,
.BI " const struct winsize *" winp );
-.PP
+
.B #include <utmp.h>
.PP
.BI "int login_tty(int " fd );
.I winp
is not NULL, the window size of the slave will be set to the values in
.IR winp .
-
+.PP
The
.BR login_tty ()
function prepares for a login on the terminal
to be the standard input, output, and error streams of the current
process, and closing
.IR fd .
-
+.PP
The
.BR forkpty ()
function combines
If
.I name
is not NULL, the buffer it points to is used to return the
-the filename of the slave.
+filename of the slave.
The
.I termp
and
returns the process ID of the child process.
.SH ERRORS
.BR openpty ()
-will fail if:
+fails if:
.TP
.B ENOENT
There are no available terminals.
-.LP
+.PP
.BR login_tty ()
-will fail if
+fails if
.BR ioctl (2)
fails to set
.I fd
to the controlling terminal of the calling process.
-.LP
+.PP
.BR forkpty ()
-will fail if either
+fails if either
.BR openpty ()
or
.BR fork (2)
.BR login_tty ()
T} Thread safety MT-Unsafe race:ttyname
.TE
-
+.sp 1
.SH CONFORMING TO
These are BSD functions, present in glibc.
They are not standardized in POSIX.
and
.BR forkpty ()
in glibc 2.8.
-
+.PP
In versions of glibc before 2.0.92,
.BR openpty ()
returns file descriptors for a BSD pseudoterminal pair;