現在、SolarisでC言語の簡単なアプリケーションを作成しています。
そこで、管理者以外の人に悪用されないようにという名目で、作ったプログラムを端末エミュレータで起動させ、それに標準入力からパスワードを入力させるようにしたいと考えています。
しかし、そのためには、入力したパスワードをターミナル上に表示されては困るので、ターミナルに入力された文字列を表示させないようにするにはどうしたらよいのでしょうか?
いろいろと調べたのですが、具体的な関数がよくわからなかったので、エコーバックをなくすような関数がありましたら、是非教えてただきたいと思います。
No.3ベストアンサー
- 回答日時:
結構、面倒です。
覚悟してください。入出力がファイルにリダイレクトされている場合の処置とか、途中でCtrl+Cを押された場合の始末とか、諸々を付け加えると100ステップを超えてしまうかもしれません。#include <termio.h>
struct termio tbuf;
char passowrd [100];
ioctl (0, TCGETA, &tbuf);
tbuf.c_lflag &= ~ECHO;
ioctl (0, TCSETA, &tbuf);
fputs ("password: ", stdout);
fgets (password, stdin);
tbuf.c_lflag |= ECHO;
ioctl (0,TCSETA, &tbuf);
No.2
- 回答日時:
ioctlってシステムコール使えばやれると思いますよ。
Linuxではやったことありますが、多分Solaris(Unix)でも
いけたはず・・・
ioctlの使い方はmanでも見て下さい。
No.1
- 回答日時:
このソースを試してみてください。
ヒントになるでしょう。
Enterキー入力後にエコーバックします。
キーワードはsttyコマンドです。
----
#include <stdio.h>
main()
{
char bf[1000];
memset(bf, NULL, 1000);
printf("PASSWD:");
system("stty -echo >/dev/null 2>&1");
scanf("%s", bf);
system("stty echo >/dev/null 2>&1");
printf("\nエコーバック=>%s\n",bf);
}
この回答への補足
お答えありがとうございます!
しかし、system関数を使わずに、C言語の関数(ライブラリを含む)ですることはできるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Excel(エクセル) Excelのテーブルについて 6 2023/07/07 08:37
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) Excelの関数について 3 2022/11/13 23:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミング初心者です。 Py...
-
プログラム(C)
-
*をユーザーが入力した数字の数...
-
プログラミング・C言語の配列(...
-
コマンドプロンプトからのEOFの...
-
正負を反転させて出力するプロ...
-
作成したいプルグラムがあります。
-
VBでの日付入力値のフォーマッ...
-
cout関数を使っているのですが...
-
c言語が初心者です。教えていた...
-
C言語でつるかめ算をするにはど...
-
batプログラム上で文字列を入力...
-
C言語の入出力関数の違い
-
エクセルワークシート上で、1、...
-
VisualStudio2019のコードアナ...
-
数値の連続入力終了条件について
-
入力されたとき,何も入力しな...
-
double型が正常に認識されてい...
-
アセンブラ言語CASLIIのプ...
-
C言語 自然数の四則演算 エラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
C言語 逆ピラミッドの作り方
-
double型が正常に認識されてい...
-
ワードで文字を入力する時の変...
-
コマンドプロンプトからのEOFの...
-
Linuxで入力待ちなしkeyread関...
-
scanf が無視されます
-
if文の条件にscanf関数を使うと…?
-
C言語について
-
cout関数を使っているのですが...
-
enterでループ終了
-
"scanf"でエンターで改行させな...
-
C言語でgetchar();が上手く使え...
-
C言語scanf_sで何故か2回入力に...
おすすめ情報