Рассмотрят следующий код:с OPTARG atoi, без арг
int number;
while((w = getopt(argc, argv, "n:s:")) != -1) {
switch (w){
case 'n': {
opfile->filename = optarg;
}break;
case 's': {
number = atoi(optarg);
}break;
}
}
Теперь, когда я оставляю оба варианта или опцию s
пустой, например, я начинаю свою программу, без командной строки аргументов, то переменной number
все еще получает случайное значение.
Что мне здесь не хватает? Некоторая if-statement в случае s
? В частности, я хочу осветить случай, когда пользователь не назначает конкретное значение/параметр s
в аргументах командной строки.
+1 И просто примечание к О.П., тот факт, что это только дает случайную переменную делает трудно понять, что программа может потерпеть крах на других системах (или даже в конечном итоге на одной и той же системе). UB может быть болью. – RastaJedi