Optarg всегда дает значениеLinux

Ответить
Anonymous
 Optarg всегда дает значение

Сообщение Anonymous »

Я пытаюсь создать проект, который вычисляет надежность заданного пароля, но у меня есть дополнительная функция, такая как -f, которая берет файл .txt и сканирует, найден ли в нем пароль, но когда я набираю, например, ./password_checker abc -f, он должен возвращать ошибку, но optarg не дает значения, такого как null, поэтому я не могу определить, указал ли пользователь имя файла или нет

Код: Выделить всё

int main(int argc, char *argv[]) {

//for getopt
int option;
char *filename;
int fflag = 0;

//checks if no args is given and prints out the help page
if(argc == 1){
help();
return 0;
}
//need to use optget and redo all of the flag logic manually
while((option = getopt(argc, argv, ":hf:")) != -1){
switch(option){
case 'h':
help();
return 0;
case 'f':
//read file name from -f flag
filename = optarg;
fflag = 1;
case '?':
fprintf(stderr, "Unknown option -%c\n",optopt);
return 1;
}
}

//check if -f flag is used
if(fflag == 1){
int errorcode = file(filename,password);
if(errorcode == 1){
fprintf(stderr,"Filename must be of .txt extension\n");
} else if ( errorcode == 2){
fprintf(stderr,"File not found or not able to open\n");
} else if (errorcode == 3){
fprintf(stderr,"Password not found in wordlist\n");
} else if (errorcode == 0){
printf("Password found in word list");
}
return 0;
}
Я пытался проверить наличие нулевых значений или одиночных значений, таких как ' ', но все еще не смог определить их должным образом.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ving-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»