侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 238 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

getpass函数用法详解

noerror
2022-11-09 / 0 评论 / 0 点赞 / 27 阅读 / 452 字 / 正在检测是否收录...

getpass函数用法详解

getpass函数简介

  • 头文件包含
#include <unistd.h>
  • 函数定义
char *getpass(const char * prompt );

getpass函数常见使用错误

  • 编译错误
    warning: implicit declaration of function ‘getpass’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <unistd.h>

getpass函数详细描述

此功能已过时。不要使用它。如果要在不启用终端回显的情况下读取输入,请参见termios (3)中ECHO标志的说明
getpass ()函数打开/dev/tty(进程的控制终端),输出字符串prompt 关闭回显,读取一行(“密码”),恢复终端状态并再次关闭/dev/tty。

getpass函数返回值

函数getpass ()返回一个指向静态缓冲区的指针,该缓冲区包含(的第一个 PASS_MAX 字节)不带尾随换行符的密码,以空字节(\(aq\e0\(aq)终止。这个缓冲区可能会被下面的调用覆盖。出错时,恢复终端状态,适当设置errno,并返回null。

getpass函数错误码

如果出现以下情况,则该功能可能会失败

  • ENXIO 进程没有控制终端。

getpass函数其他说明

.在GNU C库实现中,如果/dev/tty无法打开,则提示符被写入stderr,密码从stdin 读取。密码的长度没有限制。未禁用行编辑。
根据SUSv2,如果 PASS_MAX 的值小于8,则必须在中定义它,并且在任何情况下都可以使用sysconf(_SC_PASS_MAX) 获得。但是,POSIX.2提取常量 PASS_MAX 和_SC_PASS_MAX 以及函数getpass ().glibc版本接受 _SC_PASS_MAX 并返回 BUFSIZ (例如,8192)。

0

评论区