Chinaunix

标题: 请教一下passwd读取用户输入的原理 [打印本页]

作者: bleem1998    时间: 2005-10-21 23:49
标题: 请教一下passwd读取用户输入的原理
passwd程序是怎样读取用户输入的呢?
为什么不可以用管道和passwd交谈?
谁能大致说说这样的程序怎样写
谢谢
作者: wjywhl    时间: 2005-10-22 00:14
标题: 请教一下passwd读取用户输入的原理
设置终端为原始模式,禁止回显
读取一个字符,向终端写一个*
作者: bleem1998    时间: 2005-10-22 11:28
标题: 请教一下passwd读取用户输入的原理

  1. #include "../my.h"
  2. static struct termios stored_settings;

  3. void set_keypress(void)
  4. {
  5.         struct termios new_settings;

  6.         tcgetattr(0,&stored_settings);

  7.         new_settings = stored_settings;

  8.         /* Disable canonical mode, and set buffer size to 1 byte */
  9.         new_settings.c_lflag &= (~ICANON);
  10.         new_settings.c_lflag &= (~ECHO);
  11.         new_settings.c_cc[VTIME] = 0;
  12.         new_settings.c_cc[VMIN] = 1;

  13.         tcsetattr(0,TCSANOW,&new_settings);
  14.         return;
  15. }

  16. void reset_keypress(void)
  17. {
  18.         tcsetattr(0,TCSANOW,&stored_settings);
  19.         return;
  20. }

  21. int main()
  22. {
  23.         char buf[256] = "", *p = buf;

  24.         set_keypress();
  25.         while(1) {
  26.                 char c;
  27.                 read(0,&c,1);
  28.                 if (c == '\n')
  29.                         break;
  30.                 *p++ = c;
  31.         }
  32.         reset_keypress();
  33.         printf("[%s]\n", buf);
  34. }
复制代码

可是这个程序还是可以和管道交互阿
是不是我写的有问题?
作者: bleem1998    时间: 2005-10-26 11:47
标题: 请教一下passwd读取用户输入的原理
U....P
作者: wjywhl    时间: 2005-10-27 00:13
标题: 请教一下passwd读取用户输入的原理
可你没有建立管道阿
作者: bleem1998    时间: 2005-10-27 00:26
标题: 请教一下passwd读取用户输入的原理
cat /etc/passwd | ./a.out
作者: 柳五随风    时间: 2005-10-28 00:36
标题: 请教一下passwd读取用户输入的原理
close(0), close(1)可以吗?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2