LINUX.ORG.RU

getopt: возвращается ? вместо :


0

0

Привет!

Компилирую пример:
http://www.c.happycodings.com/Gnu-Linux/code11.html

Запускаю:

krivenok@develop 14:02:55 /tmp/getopt $ ./a.out -f             
./a.out: option requires an argument -- f
getoptex: Error - No such option: `f'

getoptex,0.0.1 show working getopt example
getoptex [-h] [-V] [-f FILE] [-o FILE]

  -h              print this help and exit
  -V              print version and exit

  -v              set verbose flag
  -f FILE         set intput file
  -o FILE         set output file

krivenok@develop 14:03:00 /tmp/getopt $ 


Программа выдет "No such option", а должна
"Option `f' needs a value".

То есть возвращается '?' вместо ':'.

В чём проблема?

P.S.
Заметьте, что сам getopt пишет на stderr:
./a.out: option requires an argument -- f

Внимательно читаем man 3 getopt | grep -C4 "(':')" и не менее внимательно смотрим на последний аргумент, переданный getopt

Jini ★★
()
Ответ на: комментарий от Jini

А для совсем уж простых: после -f нужно указать имя файла :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.