.\" Copyright (c) OpenBSD Group
.\" All rights reserved.
.\"
+.\" %%%LICENSE_START(BSD_3_CLAUSE_UCB)
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
+.\" %%%LICENSE_END
.\"
.\" Converted into a manpage again by Martin Schulze <joey@infodrom.org>
.\"
.\" Added -lutil remark, 030718
.\"
-.TH OPENPTY 3 2003-07-18 "GNU" "Linux Programmer's Manual"
+.TH OPENPTY 3 2014-08-19 "GNU" "Linux Programmer's Manual"
.SH NAME
-openpty, login_tty, forkpty \- tty utility functions
+openpty, login_tty, forkpty \- terminal utility functions
.SH SYNOPSIS
.nf
.B #include <pty.h>
.sp
.BI "int openpty(int *" amaster ", int *" aslave ", char *" name ,
-.BI " struct termios *" termp ", struct winsize *" winp );
+.BI " const struct termios *" termp ,
+.BI " const struct winsize *" winp );
.sp
-.BI "pid_t forkpty(int *" amaster ", char *" name ", struct termios *" termp ,
-.BI " struct winsize *" winp );
+.BI "pid_t forkpty(int *" amaster ", char *" name ,
+.BI " const struct termios *" termp ,
+.BI " const struct winsize *" winp );
.sp
.B #include <utmp.h>
.sp
.SH DESCRIPTION
The
.BR openpty ()
-function finds an available pseudo-terminal and returns file descriptors
+function finds an available pseudoterminal and returns file descriptors
for the master and slave in
.I amaster
and
The
.BR login_tty ()
-function prepares for a login on the tty
+function prepares for a login on the terminal
.I fd
-(which may be a real tty device, or the slave of a pseudo-terminal as
+(which may be a real terminal device, or the slave of a pseudoterminal as
returned by
.BR openpty ())
by creating a new session, making
.BR fork (2),
and
.BR login_tty ()
-to create a new process operating in a pseudo-terminal.
+to create a new process operating in a pseudoterminal.
The file
-descriptor of the master side of the pseudo-terminal is returned in
+descriptor of the master side of the pseudoterminal is returned in
.IR amaster ,
and the filename of the slave in
.I name
.I winp
arguments, if not NULL,
will determine the terminal attributes and window size of the slave
-side of the pseudo-terminal.
-.SH "RETURN VALUE"
+side of the pseudoterminal.
+.SH RETURN VALUE
If a call to
.BR openpty (),
.BR login_tty (),
will fail if:
.TP
.B ENOENT
-There are no available ttys.
+There are no available terminals.
.LP
.BR login_tty ()
will fail if
or
.BR fork (2)
fails.
-.SH "CONFORMING TO"
-These are BSD functions, present in libc5 and glibc2.
+.SH CONFORMING TO
+These are BSD functions, present in glibc.
+They are not standardized in POSIX.
.SH NOTES
-.\" These functions are included in libutil, hence you'll need to add
-.\" .B \-lutil
-.\" to your compiler command line.
-.\"
+The
+.B const
+modifiers were added to the structure pointer arguments of
+.BR openpty ()
+and
+.BR forkpty ()
+in glibc 2.8.
+
In versions of glibc before 2.0.92,
.BR openpty ()
-returns file descriptors for a BSD pseudo-terminal pair;
+returns file descriptors for a BSD pseudoterminal pair;
since glibc 2.0.92,
-it first attempts to open a Unix 98 pseudo-terminal pair,
-and falls back to opening a BSD pseudo-terminal pair if that fails.
+it first attempts to open a UNIX 98 pseudoterminal pair,
+and falls back to opening a BSD pseudoterminal pair if that fails.
.SH BUGS
Nobody knows how much space should be reserved for
.IR name .
with non-NULL
.I name
may not be secure.
-.SH "SEE ALSO"
+.SH SEE ALSO
.BR fork (2),
.BR ttyname (3),
.BR pty (7)
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.