я писал программу проверки пользователя и после Успешной входа в систему я обеспечиваю оболочку как строки:как присвоить строку в ARGC и ARGV
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, как в основной (int argc, int ** argv) формальной переменной сигнатур функций.
Есть ли какая-либо библиотека C, чтобы сделать это или любой подходящий совет или образец, чтобы продолжить.
Наконец, я должен разбирать строку в argc и argv.
Любая помощь очень ценится. Спасибо.
Просьба показать ваше исследование до времени. Сначала прочитайте страницу [Ask]. –
'argc' и' argv' являются параметрами функции 'main', которые заполняются операционной системой при запуске вашей программы. В вашем коде они являются неинициализированными локальными переменными. Как вы ожидаете, что они будут хранить разумные данные? Просто называя их «argc» и «argv», они не приводят их магически к аргументам командной строки. –
Обратите внимание, что прототипом 'main' является' int main (int argc, char ** argv); '. В вашем вопросе вы говорите 'int ** argv' –