GETPASS(3) | Library Functions Manual | GETPASS(3)

# NAME

`getpass` — get a password

# SYNOPSIS

`#include <pwd.h>`
`#include <unistd.h>`

char *
`getpass`(const char *prompt);

# DESCRIPTION

This function is obsolete. Consider using readpassphrase(3).

The `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 `_PASSWORD_LEN` (currently 128, as defined in the `<pwd.h>` include file) characters in length. Any additional characters and the terminating newline character are discarded.

`getpass`() turns off character echoing while reading the password.

The calling process should zero the password with explicit_bzero(3) as soon as possible to avoid leaving the cleartext password visible in the process's address space.

# RETURN VALUES

Upon successful completion, `getpass`() returns a pointer to a NUL-terminated string of at most `_PASSWORD_LEN` characters. If an error is encountered, the terminal state is restored and a null pointer is returned.

# FILES

/dev/tty

# ERRORS

[`EINTR`]
  The `getpass`() function was interrupted by a signal.
[`EIO`]
  The process is a member of a background process attempting to read from its controlling terminal, the process is ignoring or blocking the SIGTTIN signal or the process group is orphaned.
[`EMFILE`]
  The process has already reached its limit for open file descriptors.
[`ENFILE`]
  The system file table is full.

# SEE ALSO

crypt(3), readpassphrase(3)

# STANDARDS

Historically, BSD versions of `getpass`() have accepted a password on the standard input if /dev/tty is unavailable. This contradicts X/Open Portability Guide Issue 4, Version 2 (“XPG4.2”) but the OpenBSD implementation is conformant in all other respects. Removed from IEEE Std 1003.1-2001 (“POSIX.1”).

# HISTORY

A `getpass`() function appeared in Version 7 AT&T UNIX.

# CAVEATS

The `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.

September 3, 2016 | Debian