给UNIX加把屏幕锁

Author: 石鹰 Date: 1998年 第30期 21版

  UNIX操作系统大多安装在网络服务器上,为了避免维护人员不在时无关人员对服务器进行误操作,我用C语言编写了一个小程序实现了屏幕锁的功能,该程序在AT&T UNIX 4.0和SCO UNIX 5.0上均运行通过,源程序如下:
  #include ″curses.h″/*curses为UNIX提供的屏幕处理函数*/
  main()
  {int flag=0;
  int i;
  int passwd[4];/*口令长度为4*/
  noecho();/*屏幕不回显键盘的输入*/
  while(flag!=1)
  {
  for(i=0;i<=3;i++)
  {move(20,20);
  passwd[i]=getch();
  mvprintw(20,20+i,″*″);/*每敲一下键在屏幕上显示一个“*”*/
  }
  if(passwd[0]==′h′&&passwd[1]==′a′&&passwd[2]==′w′&&passwd[3]==′k′)
  {/*口令为hawk*/
  mvprintw(10,20,″输入正确!″);
  flag=1;
  }
  move(20,20);
  clrtoeol();/*清除有“*”的行*/
  for(i=0;i<=5;i++)
  passwd[i]=′′;/*清除passwd*/
  }
  refresh();
  endwin();
  echo();
  /*屏幕恢复*/
  }
  用下述命令可将该程序编译成可执行程序(设该程序为lock.c,生成的可执行文件为a.out):$ cc lock.c a.out -lcurses。