콘솔에서 패스워드 입력받을때 사용할만한 런타임 함수 있을까요

simpid의 이미지

콘솔에서 프로그램을 하나 작성중입니다.

사용자의 명령을 받기 위해서 fgets를 사용하고 있는데
gets와는 다르게 안전하게 입력받을 수 있어 좋더군요.

문제는 fgets는 사용자 입력시 echo가 있기 때문에 패스워드 입력을 받는땐 적합하지 않은것 같습니다.
패스워드 입력시 *가 나타나던지 아니면... echo라도 없게 하는 방법이 있을까요?

일단은 원하는 기능을 하도록 직접 만들었는데...
생각이 나니까 궁금하군요.
뭐 있을까요?

Mins의 이미지

getpass 라는 함수가 있습니다. 직접 제작하실게 아니라면.
그것을 이용하심이... :)
man getpass

beta의 이미지

http://people.kldp.org/script/bbs/read.php?table=qa2&no=2621&o[sc]=n&o[ss]=unipro&o[st]=a&o[at]=s&o[sct]=s&o[stt]=s

구글에서 getpass 정도로 검색하시면 꽤 많은 소스를 찾으실수 있을겁니다.
getpass의 타임아웃은 select, signal을 참고하세요.

발 담갔다. 이제 익숙해 지는길만이..

moonzoo의 이미지

echo를 끄고 password를 입력 받으면 되지 않을까요?

man noecho

좀더 신경써서 만든다면 echo를 끄고 키보드 입력마다 *를 찍어주면

더 좋을 듯.