GETPASS(3) | Library Functions Manual | GETPASS(3) |
getpass
, getpass_r
,
getpassfd
—
#include <unistd.h>
char *
getpass
(const
char *prompt);
char *
getpass_r
(const
char *prompt, char
*buf, size_t
buflen);
char *
getpassfd
(const
char *prompt, char
*buf, size_t
buflen, int *fd,
int flags,
int timeout);
getpass
() function displays a prompt to, and reads
in a password from, /dev/tty. If this file is not
accessible, getpass
() displays the prompt on the
standard error output and reads from the standard input.
The password may be up to
sysconf(3)
_SC_PASS_MAX
characters in length. Any additional
characters and the terminating newline character are discarded.
getpass
() turns off character echoing
while reading the password.
getpass_r
() is similar to
getpass
() only it puts its result in
buf for up to buflen characters.
If the buf argument is NULL
,
then a buffer will be dynamically allocated.
The getpassfd
() function allows one to
specify the three file descriptors corresponding to
stdin
, stdout
, and
stderr
in the fd argument, or
if fd is NULL
,
getpassfd
() first attempts to open
/dev/tty and if that fails, defaults to
STDIN_FILENO
for input and
STDERR_FILENO
for output.
The behavior of getpassfd
() is controlled
by the flags argument:
GETPASS_NEED_TTY
GETPASS_FAIL_EOF
GETPASS_BUF_LIMIT
GETPASS_NO_SIGNAL
GETPASS_NO_BEEP
GETPASS_ECHO_STAR
GETPASS_ECHO
GETPASS_ECHO_NL
GETPASS_7BIT
GETPASS_FORCE_LOWER
GETPASS_FORCE_UPPER
Finally if the timeout argument is non zero,
getpassfd
() will wait for
timeout seconds for input after each character before
returning an error, instead of waiting forever.
getpass
() function returns a pointer to the NUL
terminated password, or an empty string on error. The
getpass_r
() and getpassfd
()
functions return a pointer to the NUL terminated password, or
NULL
on error.
getpass
() function appeared in
Version 2 of the Single UNIX Specification
(“SUSv2”), but it was already marked as legacy. The
function was removed in the IEEE Std 1003.1-2001
(“POSIX.1”) standard.
getpass
() function appeared in
Version 7 AT&T UNIX. The
getpass_r
() and getpassfd
()
functions appeared in NetBSD 7.0.
getpass
() function leaves its result in an internal
static object and returns a pointer to that object. Subsequent calls to
getpass
() will modify the same object.
Historically getpass
accepted and returned
a password if it could not modify the terminal settings to turn echo off (or
if the input was not a terminal). In this implementation, only terminal
input is accepted.
April 13, 2012 | NetBSD 9.2 |