]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man3/getpass.3
locale.1, localedef.1, _exit.2, accept.2, access.2, acct.2, adjtimex.2, bdflush.2...
[thirdparty/man-pages.git] / man3 / getpass.3
index 33777ebfe294a6a0041910bf1beacb436c3b2bc7..8c7705b50007cd91bf7b976ac7c8c0418af164bb 100644 (file)
@@ -1,5 +1,6 @@
 .\" 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  2000-12-05 "Linux Manpage" "Linux Programmer's Manual"
+.TH GETPASS 3  2016-03-15 "Linux" "Linux Programmer's Manual"
 .SH NAME
 getpass \- get a password
 .SH SYNOPSIS
 .B #include <unistd.h>
 .sp
-.B "char *getpass( const char *" prompt );
+.BI "char *getpass(const char *" prompt );
+.sp
+.in -4n
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.in
+.sp
+.BR getpass ():
+.ad l
+.RS 4
+.PD 0
+.TP 4
+Since glibc 2.2.2:
+.nf
+_XOPEN_SOURCE && ! (_POSIX_C_SOURCE\ >=\ 200112L)
+    || /* Glibc since 2.19: */ _DEFAULT_SOURCE
+    || /* Glibc versions <= 2.19: */ _BSD_SOURCE
+.fi
+.TP 4
+Before glibc 2.2.2:
+none
+.PD
+.RE
+.ad b
 .SH DESCRIPTION
-This function is obsolete. Do not use it.
+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 ()
@@ -40,12 +70,13 @@ turns off echoing, reads one line (the "password"),
 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 PASS_MAX bytes of) the password without the trailing
-newline, terminated by a NUL.
+returns a pointer to a static buffer containing (the first
+.B PASS_MAX
+bytes of) the password without the trailing
+newline, terminated by a null byte (\(aq\\0\(aq).
 This buffer may be overwritten by a following call.
 On error, the terminal state is restored,
 .I errno
@@ -54,26 +85,51 @@ is set appropriately, and NULL is returned.
 The function may fail if
 .TP
 .B ENXIO
-The process does not have a controlling terminal. 
-.SH NOTES
-For libc4 and libc5, the prompt is not written to
-.I /dev/tty
-but to
-.IR stderr .
-Moreover, if
+The process does not have a controlling terminal.
+.SH FILES
 .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 (SIGINT, SIGQUIT,
-SIGSTOP, SIGTSTOP) 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.
+.\" .SH HISTORY
+.\" A
+.\" .BR getpass ()
+.\" function appeared in Version 7 AT&T UNIX.
+.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 getpass ()
+T}     Thread safety   MT-Unsafe term
+.TE
+.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.
 .PP
-For glibc2, if
+In the GNU C library implementation, if
 .I /dev/tty
 cannot be opened, the prompt is written to
 .I stderr
@@ -82,23 +138,29 @@ and the password is read from
 There is no limit on the length of the password.
 Line editing is not disabled.
 .PP
-According to the SUSv2, the value of PASS_MAX must be defined in
+According to SUSv2, the value of
+.B PASS_MAX
+must be defined in
 .I <limits.h>
 in case it is smaller than 8, and can in any case be obtained using
 .IR sysconf(_SC_PASS_MAX) .
-However, POSIX.2 withdraws the constants PASS_MAX
-and _SC_PASS_MAX, and the function
-.B getpass ().
-Libc4 and libc5 have never supported PASS_MAX or _SC_PASS_MAX.
-Glibc2 accepts _SC_PASS_MAX and returns BUFSIZ (e.g., 8192).
-.SH FILES
-.I /dev/tty
-.SH "SEE ALSO"
-.BR crypt (3)
-.SH HISTORY
-A
-.BR getpass ()
-function appeared in Version 7 AT&T UNIX.
+However, POSIX.2 withdraws the constants
+.B PASS_MAX
+and
+.BR _SC_PASS_MAX ,
+and the function
+.BR getpass ().
+.\" 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
+(e.g., 8192).
 .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
+.BR crypt (3)