我正在编写一个用户验证程序,在成功登录后,我提供了一个类似提示的shell:
int main()
{
int argc;
char **argv;
char *username = malloc(50);
char *passwd = malloc(32);
char command[200];
printf("Enter username:");
scanf("%s", username);
printf("\n");
printf("Enter password:");
get_passwd(passwd); //User defined function for taking the password without echoing.
// Then a authentication module is called;
int success = authenticate_user(username, passwd);
//After successful authentication of user I will print like:
printf("test @ %s >", username);
// To look user that he is working on program's own terminal where user can input some command as string
gets(command);
//Here is the main problem
// I tried using strtok() and g_shell_parse_argv () but not getting the desired result.
return 0;
}
其他团队成员根据命令字符串解析编写了进一步操作的程序。他们告诉我,我必须将其解析为argc和argv变量,如main(int argc,int ** argv)函数签名形式变量。
是否有任何C库可以执行该操作或任何最佳实践提示或样本以继续。
最后我必须在argc和argv中解析一个字符串。
非常感谢任何帮助。 谢谢。
答案 0 :(得分:0)
对于命令行参数,您必须使用它,
int main(int argc, char **argv)
在您的代码中,您可以这样做。
int main(int argc, char **argv)
{
//your remaining code
int success = authenticate_user(argv[1], argv[2]);
}
例如,当您运行程序时,
./demo username password (./demo abhijatya 1234)
所以, argv [0] = ./demo , argv [1] =用户名(abhijatya)和 argv [2] =密码(1234)。强>