.\" Copyright (c) 2000 Andries Brouwer (aeb@cwi.nl)
.\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
.\"
-.TH GETPASS 3 2010-09-20 "Linux" "Linux Programmer's Manual"
+.TH GETPASS 3 2014-08-19 "Linux" "Linux Programmer's Manual"
.SH NAME
getpass \- get a password
.SH SYNOPSIS
.B #include <unistd.h>
.sp
-.BI "char *getpass( const char *" prompt );
+.BI "char *getpass(const char *" prompt );
.sp
.in -4n
Feature Test Macro Requirements for glibc (see
(_XOPEN_SOURCE\ >=\ 500 ||
_XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600)
-.TP 4
.fi
-Before glibc 2.2.2: none
+.TP 4
+Before glibc 2.2.2:
+none
.PD
.RE
.ad b
.SH DESCRIPTION
This function is obsolete.
Do not use it.
+If you want to read input without terminal echoing enabled,
+see the description of the
+.I ECHO
+flag in
+.BR termios (3).
.PP
The
.BR getpass ()
restores the terminal state and closes
.I /dev/tty
again.
-.SH "RETURN VALUE"
+.SH RETURN VALUE
The function
.BR getpass ()
returns a pointer to a static buffer containing (the first
.\" A
.\" .BR getpass ()
.\" function appeared in Version 7 AT&T UNIX.
-.SH "CONFORMING TO"
+.SH ATTRIBUTES
+.SS Multithreading (see pthreads(7))
+The
+.BR getpass ()
+function is not thread-safe.
+.SH CONFORMING TO
Present in SUSv2, but marked LEGACY.
Removed in POSIX.1-2001.
.SH NOTES
-For libc4 and libc5, the prompt is not written to
-.I /dev/tty
-but to
-.IR stderr .
-Moreover, if
-.I /dev/tty
-cannot be opened, the password is read from
-.IR stdin .
-The static buffer has length 128 so that only the first 127
-bytes of the password are returned.
-While reading the password, signal generation
-.RB ( SIGINT ,
-.BR SIGQUIT ,
-.BR SIGSTOP ,
-.BR SIGTSTP )
-is disabled and the corresponding characters
-(usually control-C, control-\e, control-Z and control-Y)
-are transmitted as part of the password.
-Since libc 5.4.19 also line editing is disabled, so that also
-backspace and the like will be seen as part of the password.
+.\" For libc4 and libc5, the prompt is not written to
+.\" .I /dev/tty
+.\" but to
+.\" .IR stderr .
+.\" Moreover, if
+.\" .I /dev/tty
+.\" cannot be opened, the password is read from
+.\" .IR stdin .
+.\" The static buffer has length 128 so that only the first 127
+.\" bytes of the password are returned.
+.\" While reading the password, signal generation
+.\" .RB ( SIGINT ,
+.\" .BR SIGQUIT ,
+.\" .BR SIGSTOP ,
+.\" .BR SIGTSTP )
+.\" is disabled and the corresponding characters
+.\" (usually control-C, control-\e, control-Z and control-Y)
+.\" are transmitted as part of the password.
+.\" Since libc 5.4.19 also line editing is disabled, so that also
+.\" backspace and the like will be seen as part of the password.
.PP
-For glibc2, if
+In the GNU C library implementation, if
.I /dev/tty
cannot be opened, the prompt is written to
.I stderr
There is no limit on the length of the password.
Line editing is not disabled.
.PP
-According to the SUSv2, the value of
+According to SUSv2, the value of
.B PASS_MAX
must be defined in
.I <limits.h>
.BR _SC_PASS_MAX ,
and the function
.BR getpass ().
-Libc4 and libc5 have never supported
-.B PASS_MAX
-or
-.BR _SC_PASS_MAX .
-Glibc2 accepts
+.\" Libc4 and libc5 have never supported
+.\" .B PASS_MAX
+.\" or
+.\" .BR _SC_PASS_MAX .
+The glibc version accepts
.B _SC_PASS_MAX
and returns
.B BUFSIZ
.SH BUGS
The calling process should zero the password as soon as possible to avoid
leaving the cleartext password visible in the process's address space.
-.SH "SEE ALSO"
+.SH SEE ALSO
.BR crypt (3)
+.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/.