在C中输入密码

Moh*_*nde 10 c unix passwords

我知道当你输入标准的ANSI C时,不可能回显*.但是当有人在控制台中输入密码时,有没有办法显示任何内容.我的意思是像Unix/Linux终端中的sudo提示.就像你输入命令一样:sudo cp /etc/somefile ~/somedir.通常会提示您输入root密码.当您输入时,终端不显示任何内容.这种效果在C中是否可行?如果是的话,怎么样?

Mic*_*yan 9

您正在寻找的功能是:getpass().但是,您会注意到它被标记为"LEGACY".虽然它不会去任何地方,但该函数不允许指定输入缓冲区的大小,这使得它不是一个非常好的接口.正如Jefromi所指出的那样,glibc手册提供了可移植的示例代码,用于以允许任意输入大小(并且不是LEGACY)的方式从头开始实现getpass.