23,124
社区成员
发帖
与我相关
我的任务
分享
#define ECHOFLAGS (ECHO|ECHOE|ECHOK|ECHONL)
int getpasswd(char passwd[])
{
int ret=0;
struct termios termios_buf;
if(tcgetattr(STDIN_FILENO,&termios_buf)!=0)
{
perror("tcgetattr failed");
return -1;
}
termios_buf.c_lflag &= ~ECHOFLAGS;
if(tcsetattr(STDIN_FILENO,TCSAFLUSH,&termios_buf)!=0)
{
perror("tcsetattr failed");
return -2;
}
if(passwd!=NULL){
ret=scanf("%s", passwd);
}
//printf("\nYour passwd is %s\n",passwd);
if(tcgetattr(STDIN_FILENO,&termios_buf)!=0)
{
perror("tcgetattr failed");
return -1;
}
termios_buf.c_lflag |= ECHOFLAGS;
if(tcsetattr(STDIN_FILENO,TCSAFLUSH,&termios_buf)!=0)
{
perror("tcsetattr failed");
return -2;
}
return ret>0?0:1;
}
#include <stdio.h>
#include <unistd.h>
int main()
{
char *passwd;
passwd = getpass("Enter your password:");
printf("\nThe password you entered:%s\n", passwd);
return 0;
}