免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5279 | 回复: 2
打印 上一主题 下一主题

如何在linux下设置终端让用户输入的字符被立即送到程序,并且不回显? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-25 16:59 |只看该作者 |倒序浏览
如何在程序运行时动态调整linux下终端参数,让用户输入的字符被立即送到程序,并且不回显?各位大侠请指点一下吧,多谢啦!

论坛徽章:
0
2 [报告]
发表于 2005-12-11 17:12 |只看该作者
(1)标准I/O
  *fopen():打开一个文件供读或写,安全方面的考虑同open()一样。
  *fread(),getc(),fgetc(),gets(),scanf()和fscanf():从已由fopen()打
  开供读的文件中读取信息。它们并不关心文件的存取许可。这一点
  同read()。
  *fwrite(),put(),fputc(),puts,fputs(),printf(),fprintf():写信息到已由fopen()打开供写的文件中。它们也不关心文件的存取许可。
  同write()。
  *getpass():从终端上读至多8个字符长的口令,不回显用户输入的字符。
  需要一个参数: 提示信息。

  该子程序将提示信息显示在终端上,禁止字符回显功能,从/dev/tty读取口令,然后再恢复字符回显功能,返回刚敲入的口令的指针。

  *popen():将在(5)运行shell中介绍。

  (2)/etc/passwd处理

  有一组子程序可对/etc/passwd文件进行方便的存取,可对文件读取到入口项或写新的入口项或更新等等。
  *getpwuid():从/etc/passwd文件中获取指定的UID的入口项。
  *getpwnam():对于指定的登录名,在/etc/passwd文件检索入口项。
  以上两个子程序返回一指向passwd结构的指针,该结构定义在
  /usr/include/pwd。h中,定义如下:
  struct passwd {
  char * pw_name; /* 登录名 */
  char * pw_passwd; /* 加密后的口令 */
  uid_t pw_uid; /* UID */
  gid_t pw_gid; /* GID */
  char * pw_age; /* 代理信息 */
  char * pw_comment; /* 注释 */
  char * pw_gecos;
  char * pw_dir; /* 主目录 */
  char * pw_shell; /* 使用的shell */
  };
  *getpwent(),setpwent(),endpwent():对口令文件作后续处理。

  首次调用getpwent(),打开/etc/passwd并返回指向文件中第一个入口项的指针,保持调用之间文件的打开状态。

  再调用getpwent()可顺序地返回口令文件中的各入口项。

  调用setpwent()把口令文件的指针重新置为文件的开始处。

  使用完口令文件后调用endpwent()关闭口令文件。

  *putpwent():修改或增加/etc/passwd文件中的入口项。
  此子程序将入口项写到一个指定的文件中,一般是一个临时文件,直接写口令文件是很危险的。最好在执行前做文件封锁,使两个程序不能同时写一个文件。算法如下:

  。 建立一个独立的临时文件,即/etc/passnnn,nnn是PID号。
  。 建立新产生的临时文件和标准临时文件/etc/ptmp的链,若建链失败,则为有人正在使用/etc/ptmp,等待直到/etc/ptmp可用为止或退出。
  。 将/etc/passwd拷贝到/etc/ptmp,可对此文件做任何修改。
  。 将/etc/passwd移到备份文件/etc/opasswd。
  。 建立/etc/ptmp和/etc/passwd的链。
  。 断开/etc/passnnn与/etc/ptmp的链。

  注意:临时文件应建立在/etc目录,才能保证文件处于同一文件系统中,建链才能成功,且临时文件不会不安全。此外,若新文件已存在,即便建链的是root用户,也将失败,从而保证了一旦临时文件成功地建链后
  没有人能再插进来干扰。当然,使用临时文件的程序应确保清除所有临时文件,正确地捕捉信号。

论坛徽章:
0
3 [报告]
发表于 2005-12-11 20:59 |只看该作者
搜索  串口 终端
主要是设置终端模式,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP