标题给UNIX加把屏幕锁
栏目软件世界
作者石鹰
发布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。