GETPASS(3)

名称
getpass - パスワードを取得

書式
#include <pwd.h> #include <unistd.h> char * getpass(const char *prompt)

解説
getpass() 関数は /dev/tty にプロンプトを表示し、パスワードをそこから読み 込みます。ファイルにアクセスできない場合、 getpass() はプロンプトを標準 エラー出力に表示し、標準入力からパスワードを読み込みます。

パスワードの長さは最大 _PASSWORD_LEN (現在 128) キャラクタまで可能です。 それを超えるキャラクタと終端の改行キャラクタは廃棄されます。

パスワードの読み込み中、 getpass() 関数はキャラクタのエコーをオフにします。

戻り値
getpass() 関数は、 null で終わるパスワードのポインタを返します。

関連ファイル
/dev/tty

関連項目
crypt(3)

歴史
getpass() 関数は、 AT&T UNIX で最初に取り入れられました。

バグ
getpass() 関数は内部静的オブジェクトに処理結果を残し、オブジェクトの ポインタを返します。以後の getpass() 呼び出しが同じオブジェクトを改変します。

クリアテキストパスワードが、この処理のアドレス空間に可視の状態で残るのを 回避するためには、この関数の呼び出し処理によってできるだけ早くパスワードを ゼロにする必要があります。

SIGTSTP を受け取ると入力バッファはフラッシュされます。したがって処理を 継続する場合は、一部タイプ指定したパスワードはすべて再入力する 必要があります。