# getpass

## NAME



           getpass - get a password
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <unistd.h>**
    
           **[[deprecated]] char *getpass(const char ***_prompt_**);**
    
       Feature Test Macro Requirements for glibc (see
       feature_test_macros(7)):
    
           **getpass**():
               Since glibc 2.2.2:
                   _XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L)
                       || /* glibc >= 2.19: */ _DEFAULT_SOURCE
                       || /* glibc <= 2.19: */ _BSD_SOURCE
               Before glibc 2.2.2:
                   none
    


## DESCRIPTION



           This function is obsolete.  Do not use it.  See NOTES.  If you
           want to read input without terminal echoing enabled, see the
           description of the _ECHO_ flag in termios(3).
    
           The **getpass**() function opens _/dev/tty_ (the controlling terminal of
           the process), outputs the string _prompt_ , turns off echoing, reads
           one line (the "password"), restores the terminal state and closes
           _/dev/tty_ again.
    


## RETURN VALUE



           The function **getpass**() returns a pointer to a static buffer
           containing (the first **PASS_MAX** bytes of) the password without the
           trailing newline, terminated by a null byte ('\0').  This buffer
           may be overwritten by a following call.  On error, the terminal
           state is restored, _errno_ is set to indicate the error, and NULL is
           returned.
    


## ERRORS



           **ENXIO** The process does not have a controlling terminal.
    


## FILES



           _/dev/tty_
    


## ATTRIBUTES



           For an explanation of the terms used in this section, see
           attributes(7).
           ┌───────────────────────────────┬───────────────┬────────────────┐
           │ **Interface** │ **Attribute** │ **Value** │
           ├───────────────────────────────┼───────────────┼────────────────┤
           │ **getpass**()                     │ Thread safety │ MT-Unsafe term │
           └───────────────────────────────┴───────────────┴────────────────┘
    


## STANDARDS



           None.
    


## NOTES



           You should use instead **readpassphrase**(3bsd), provided by _libbsd_.
    
           In the GNU C library implementation, if _/dev/tty_ cannot be opened,
           the prompt is written to _stderr_ and the password is read from
           _stdin_.  There is no limit on the length of the password.  Line
           editing is not disabled.
    
           According to SUSv2, the value of **PASS_MAX** must be defined in
           _< limits.h>_ in case it is smaller than 8, and can in any case be
           obtained using _sysconf(_SC_PASS_MAX)_.  However, POSIX.2 withdraws
           the constants **PASS_MAX** and **_SC_PASS_MAX** , and the function
           **getpass**().  The glibc version accepts **_SC_PASS_MAX** and returns
           **BUFSIZ**(e.g., 8192).
    


## 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.
    


* * *