68user's page 掲示板

Prev< No. 2125〜2126> Next  [最新発言に戻る] [過去ログ一覧]
No. 2125 # RUB 2001/09/19 (水) 13:46:11
みなさまはじめまして。
場違いな質問かもしれないのですが、
皆様ご親切なので質問させていただきます。
ただいま、当方、UNIXCにて、プログラムを作っております。
そこで、telnetやTeraTermを起動した時に
ユーザID、パスワードの認証があると思うのですが、
それと同様のことを、Cのプログラムの中で行ないたいのです。
<例>
ユーザ名を入力してください → USERA
パスワードを入力してください → (キーボードを入力しているが出力されない)
このような設定(記述)のしかたをご存知の方いらっしゃいますでしょうか?
また、この時に入力されたフィールドをscanfで読み取ることは可能なのでしょうか?
もし、ご存知な方がいらっしゃったら教えていただきたいです。

宜しくお願いいたします。

No. 2126 # 68user 2001/09/20 (木) 06:08:20
>>2125 RUB
UNIX と言ってもいろいろあるので、ちゃんと環境を書きましょう。
以下、FreeBSD と仮定して説明しますが、Solaris でも同じはずです。

> パスワードを入力してください → (キーボードを入力しているが
> 出力されない)
    http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/getpass.c?rev=1.9
の getpass が参考になるでしょう。

要は、tcgetattr して、ECHO を落として (NOECHO にする)、
tcsetattr することで、tty ドライバの echo back を OFF
にできます。より詳しい情報は termios(4) をどうぞ。

もっとお手軽にやりたいなら、
    http://X68000.startshop.co.jp/~68user/net/ftp-5.html
の stty の部分を読んでください。

Prev< No. 2125〜2126> Next  [最新発言に戻る] [過去ログ一覧]